Sql server 基于参数的excel文件动态创建
任务是:根据SQL查询返回的数据,分别为每个客户生成自动定期报告,并将其保存为一个单独的excel文件,名为customer_name+[YY-MM].xlsx(或一个带时间戳的excel文件,每个客户有单独的工作表) CustomerID可能每个月都会变化,目标客户列表是通过SQL查询生成的 最好的技术是什么?到目前为止已学习:Sql server 基于参数的excel文件动态创建,sql-server,excel,reporting-services,ssis,vba,Sql Server,Excel,Reporting Services,Ssis,Vba,任务是:根据SQL查询返回的数据,分别为每个客户生成自动定期报告,并将其保存为一个单独的excel文件,名为customer_name+[YY-MM].xlsx(或一个带时间戳的excel文件,每个客户有单独的工作表) CustomerID可能每个月都会变化,目标客户列表是通过SQL查询生成的 最好的技术是什么?到目前为止已学习: SSIS:Excel文件或选项卡的名称应在控制流和数据流任务中预定义,并且不能动态设置。输出为非格式化csv(不好,但可以处理)。 Excel:我可以将所有客户的批量
SSIS:Excel文件或选项卡的名称应在控制流和数据流任务中预定义,并且不能动态设置。输出为非格式化csv(不好,但可以处理)。
Excel:我可以将所有客户的批量数据嵌入Excel,但不确定是否可以编写一个宏来获取唯一的客户,创建相应的选项卡,并在每个选项卡中放入相应的数据。
SSRS:订阅功能在公司级别被禁用-无法使用:(尽管不确定它是否接受这样的动态参数)
我是否错过了任何选项?或者可能还有其他可用技术?SSIS将是您的最佳选择,原因如下:
当然,SSIS也有一些缺点,例如在使用excel connector时很难让excel列格式相互配合,但它可能仍然是最好的选择。我将选择
SSIS
我也投票支持SSIS:)嗨,Eric,非常感谢您提供的信息丰富且详细的答案。我现在是这样看的:将densite_RANK()分配给每个客户,并基于此标记在SSIS数据流中执行条件拆分。正如您所提到的,这将适用于一定数量的模式,所以对于21世纪的客户来说,如果只创建20个模式,它将失败。然而,这已经是一个伟大的进步!是否可以为每个输出文件(或excel选项卡)指定客户名称?由于它们不是常量,我看不出是否/如何使用SSIS变量。任何到相关资源的链接都很好。虽然这可能会起作用,但我更希望有一个SP,它在任务循环中提取每个客户的数据,循环在客户列表上迭代。这样,循环可以在每次迭代中分配变量值,并且可以将输出文件名设置为其中一个变量。