1

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

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

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

有没有办法给 SQL 服务器一个客户端 ID 列表,它应该查询 5 个表,导出现有数据,并(可能/希望)在单独的选项卡上的工作簿中组合。

4

1 回答 1

3

您的问题相当模糊和广泛,但以下是您需要调查以使事情顺利进行的关键信息:

  • 创建五个不同的数据集,每个数据集查询一个表。
  • 创建五个 tablix,在每个 tablix 之前添加一个PageBreak,以便在 Excel 中它们位于不同的选项卡上。
  • 使用基于RowNumber函数的表达式设置NoRowsMessage 或沿这些行隐藏 tablix
  • 创建一个用于选择客户端 ID 的参数,并WHERE在数据集的子句中使用该参数。

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

  1. 将多个客户端放在一个 XLS 中(即不使用参数,但将 clientId 作为工作表上的一列包含)
  2. 让用户一次选择一个客户端,一次导出一个 XLS。
  3. 自动生成报告。
于 2013-02-10T09:26:07.867 回答