为多个值自动化相同查询(和导出)

时间:2013-02-10 07:07:45

标签: sql sql-server-2005 reporting-services

我正在使用一个包含5个表的数据库,所有表都包含有关客户及其员工的不同信息集。如果您在任何表中向下钻取与特定客户端相关的数据,则会根据数据集中其员工的数量返回许多行。

如果我要手动运行我需要的报告,我会一次查询每个表,查找指定特定客户端编号的所有结果。然后我将每个表导出到.csv,然后将这些导出复制到具有5个选项卡的相同excel工作簿中(对应于SQL数据库中的5个表)。最后,我会为每个客户提供一份单独的工作簿。

一个复杂因素是并非每个客户端ID都出现在5个表中的每个表中。优选地,我不会导出空数据集和客户端,只有三个表中的数据在最终工作簿中只有三个选项卡。

是否有办法向SQL服务器提供客户端ID列表,它应该查询5个表,导出现有数据,并且(可能/希望)在不同选项卡上的工作簿中组合。

1 个答案:

答案 0 :(得分:3)

您的问题相当模糊和广泛,但这是您需要调查以获取相关信息的关键部分:

  • 创建五个不同的数据集,每个数据集都查询一个表。
  • 创建五个Tablix,在每个Tablix之前添加PageBreak,因此在Excel中它们将落在不同的标签上。
  • 使用基于NoRowsMessage函数的表达式
  • 设置these lines或隐藏RowNumber的Tablix
  • Create a parameter用于选择客户端ID,并在数据集的WHERE子句中使用该ID。

棘手的一点是如何生成多个Excel文件。 SSRS一次只能导出一个,所以您的基本选项是:

  1. 将多个客户端放在一个XLS中(即不使用参数,但在工作表中包含clientId作为列)
  2. 让用户一次选择一个客户端,并一次导出一个XLS。
  3. 自动生成报告。