构建报表查询的最佳方式



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

我将把 X/Y/Z 称为"类型",将 A/B/C/D/E/D 称为"项目"

例:

X Y Z
A 10 12 14
乙 8 6 11
C 12 0 99
D 10 12 14
E 8 6 11
传真 12 0 99

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

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

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

  2. 将每种类型的所有数据合并到一个 proc/function 中,这样我就可以在一个结果集中获得第 1 列和第 2 列,在另一个结果集中获得第 1 列和第 3 列,在第三个结果集中获得第 1 列和第 4 列。 然后我想我可以把它们连接在一起。

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

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

我相当擅长 SQL,但只是进入 SSRS,所以我可能错过了一种更简单的方法。 我正在尝试在 SQL 中获取所有数据,然后在 SSRS 中使用它,但是如果我应该在 SSRS 中做更多的事情,而在 SQL 中做更少的事情,我对此持开放态度!

感谢您的输入!

如果

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

       X Y Z A 10 12 14 乙 8 6 11 C 12 0 99 D 10 12 14 E 8 6 11 传真 12 0 99

 项目类型值 A X 10 A Y 12 A Z 14 B X 8 乙 Y 6 B Z 11 C X 12 C Y 0...

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

然后问题就变成了从SQL返回什么更容易。听起来你已经很好地掌握了一些选项:你的答案将取决于你的数据库模式以及你对SQL不同功能的舒适度(或倾向)。

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

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

最新更新