将多个不同查询的结果导出到Excel?

时间:2017-01-16 18:09:38

标签: excel tsql ssms

我没有SSRS / Visual Studio,而且我在SSMS中运行多个查询。 第一个Query提供所有数据的总体摘要:

Select
'All Divisions',
Count(b.EmployeeID) As Numerator,
Count(a.EmployeeID) As Denominator,
Cast(Count(b.EmployeeID) As nvarchar) + ' / ' +     Cast(Count(a.EmployeeID) As nvarchar) As FinalRatio

从 @ tbl1 a Left Join @ tbl2 b在a.EmployeeID = b.EmployeeID

第二个问题:

    Select
    a.Division,
    Count(b.EmployeeID) As Numerator,
    Count(a.EmployeeID) As Denominator,
    Cast(Count(b.EmployeeID) As nvarchar) + ' / ' +     Cast(Count(a.EmployeeID) As nvarchar) As FinalRatio
From
@tbl1 a Left Join 
@tbl2 b On a.EmployeeID = b.EmployeeID
Group By a.Division

......第三个包含所有细节,没有聚合/汇总。

是否可以在一次操作中将所有三个结果集导出到一个Excel电子表格中 - 手动或其他方式?

1 个答案:

答案 0 :(得分:0)

我会通过OPENQUERY / OPENDATASOURCE / OPENROWSET来检查这一点。

最后两个可能比第一个更适合excel,但我不能告诉你哪个更好。

要使用此功能,您需要在SQL实例上激活ad hoc queries,否则您将收到有关禁用即席查询的错误消息。

如果你谷歌这个,你会发现大多数人用它来从Excel中检索数据,但推动也工作。为此,请写下" insert/insert into"而不是" select from"。您可能有一个工作示例here

因为你有三个"选择"声明,您需要将其翻译成三个" INSERT INTO OPENROWSET"声明。但是,为了使其正常工作,excel文件必须存在,否则OpenRowSet将无法打开,因为您需要指定excel文件和电子表格。因此,只需将一个空文件保存在sql实例可以访问的SERVER所在的网络共享上。

否则,要手动执行此操作,只需单击SSMS中结果网格的左上角。这将选择所有结果选择。然后右键单击复制并将其粘贴到Excel电子表格中。