2016-06-15 175 views
-1

我在我的工作中使用了大量数据,我想尝试找到一种方法来限制从SSMS复制到发送到客户端的Excel工作表的数量。将SQL Server数据导出到Excel

我希望能够做到的,使用SSIS(如果可能的话)或任何其他可能的方式(也许电力查询?),是将通过SQL查询拉取的数据复制到Excel工作簿工作表。

例如,我想按照状态计算成员数量,我将查询运行并将结果复制到Excel工作簿中名为“状态”的工作表中。

示例代码:

SELECT C.State, COUNT(*) as Count 
FROM [dbo].Input I 
Join Cassresults C on C.ID = I.ID 
group by C.State 
order by Count desc 

Excel工作簿永远不会为客户端改变。唯一可能改变的是查询,但这些更新很容易。

有没有一种方法可以做到这一点,或者我是这么想的吗?我希望我解释得很好。

+2

Power Query绝对可以做到这一点,但简单地使用Excel本身的数据选项呢? –

+0

如果这些请求是按需提供的,则可以使用VBA宏连接到服务器并运行查询和/或存储过程。 –

+0

如果你不确定@JohnBus​​tos是什么意思,一定要问。可以为你节省很多很多时间。 –

回答

3

SSAS,SSIS,PowerQuery,PowerBI,Excel PowerPivot,SSRS和Excel Data Querys都适用于此类用途。我绝对不会推荐VBA,因为你的用户会不断得到安全警告,而且它比需要的更复杂。

对于Excel可能是一个很好的起始位置去数据选项卡,然后单击“从其他来源”,并检查出不同的源类型。 Micrsoft Query提供了从SSMS编写查询或复制的功能。

唯一的问题是数据源会改变吗?如果是这样,您创建和分发的每个工作簿都将变得过时并需要更改。 SSRS是允许用户抓取他们需要的报告(并导出到Excel)的一个很好的选择。

当做SSAS时,它也很棒,但是从Excel中的PowerPivot开始,再次移动数据连接Sharepoint数据连接库是一种解决方法。

这就像一个BI和报告设计问题,你会得到很多答案。