构建查询报告的最佳方法

时间:2012-04-12 19:27:04

标签: sql sql-server-2008 ssrs-2008 reporting-services

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

我将打电话给X / Y / Z“类型”和A / B / C / D / E / D“项目”

实施例:     

      X     Y     Z
    
A     10    12    14
    
B     8     6     11
    
C     12    0     99
    
D     10    12    14
    
E     8     6     11
    
F     12    0     99

我有sql来生成每个数字 - 每个“行”的一个函数,我只传递X / Y / Z.

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

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

  2. 将每种类型的所有数据合并为一个proc / function,这样我就可以获得第一个和第一个一个结果集中的第二列,第一列和第一列第三列在另一列中,第一列和第三列在第三列中。然后我想我可以一起加入这些。

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

  4. 我最好为每个项目创建一个函数,所以我调用fnA(X)得到10?而不是在proc中将SQL串起来?

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

    感谢您的投入!

2 个答案:

答案 0 :(得分:0)

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

       X     Y     Z
 A     10    12    14
 B     8     6     11
 C     12    0     99
 D     10    12    14
 E     8     6     11
 F     12    0     99

 Item  Type  Value
 A      X     10
 A      Y     12
 A      Z     14
 B      X     8
 B      Y     6
 B      Z     11
 C      X     12
 C      Y     0
...

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

然后问题变得更容易从SQL返回。听起来你已经对一些选项有了很好的处理:你的答案将取决于你的数据库架构以及你对SQL的不同功能的舒适度(或者倾向性)。

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

答案 1 :(得分:0)

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