1

我需要创建一个 SSRS 摘要报告,该报告从许多不同的来源捕获大量数据。该报告需要报告 3 种不同类型的大约十几个汇总数字。每个数字的计算都非常复杂,所以我肯定想优化整体报告。

我将调用 X/Y/Z “类型”和 A/B/C/D/E/D “项目”

例子:

      XYZ
10 12 14
乙 8 6 11
C 12 0 99
10 12 14
E 8 6 11
F 12 0 99

我有生成每个数字的 sql - 我只是传递 X/Y/Z 的每个“行”的函数。

我的问题是如何将所有数据收集在一起进行报告?我可以:

  1. 将每个数据点创建为子查询,并在一个带有描述性列名的长语句中将它们串在一起

  2. 将每种类型的所有数据合并到一个过程/函数中,因此我将在一个结果集中获得第一和第二列,在另一个结果集中获得第一和第三列,在第三列中获得第一和第四列。然后我想我可以把这些结合在一起。

  3. 将每个数据点生成为一行(即 A;X;10)并将它们全部旋转在一起。

我最好还是为每个项目创建一个函数,所以我调用 fnA(X) 来获得 10?而不是仅仅在一个过程中将 SQL 串在一起?

我相当擅长 SQL,但刚刚进入 SSRS,所以我可能会错过一种更简单的方法。我正在尝试在 SQL 中获取所有数据,然后在 SSRS 中使用它,但如果我应该在 SSRS 中做更多而不在 SQL 中做更多,我愿意接受!

感谢您的输入!

4

2 回答 2

0

如果数据是从 SQL 查询以以下两种形式之一返回的,SSRS 可以轻松处理数据:

       XYZ
 10 12 14
 乙 8 6 11
 C 12 0 99
 10 12 14
 E 8 6 11
 F 12 0 99

或者

项目类型值
 斧头 10
 12 年
 AZ 14
 BX 8
 由 6
 BZ 11
 CX 12
 CY 0
...

如果这是从单个查询返回的,那么您在 SSRS 中肯定会更轻松。有几种方法可以从多个查询中获取结果,但它们并不像使用一个查询的结果那么简单。

那么问题就变成了从 SQL 中返回什么更容易。听起来您已经很好地处理了一些选项:您的答案将取决于您的数据库架构以及您对 SQL 不同功能的舒适度(或倾向)。

我会在 SSMS 中尝试几种方法:如果需要,选择最干净的代码或最佳性能的方法。

于 2012-04-12T19:49:14.730 回答
0

我最终使用光标遍历并提取每种 X/Y/Z 类型的每个数据点并将其插入到临时表中。然后我使用 SSRS 将其显示在矩阵中。有点脏,但它的工作...

于 2012-06-12T03:45:27.190 回答