为报告构建查询的最佳方式

问题描述:

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

我要去调用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 /功能中的所有数据,所以一起创建的每个数据点作为子查询,并把它们串我会得到第一列&第二列在一个结果集中,第一列&第三列在另一列中,第一列和第四列列在第三列中。那么我想我可以一起参加这些活动。

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

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

我很熟练地熟悉SQL,但只是进入SSRS,所以我可能会错过一个更简单的方法来做到这一点。我试图获取SQL中的所有数据,然后在SSRS中使用它,但是如果我应该在SSRS中做更多的事情,而在SQL中做得更少,我会对它开放!

感谢您的输入!

+0

你已经尝试过上述方法吗? – vyegorov 2012-04-13 19:24:34

我结束了使用光标来通过并为每个X/Y/Z类型拉每个数据点并将其插入临时表。然后我使用SSRS将其显示在矩阵中。有点肮脏,但它的工作原理...

SSRS可以方便地与数据处理,如果是从SQL查询中使用这两种形式的返回:

 
     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中尝试几种方法:如果需要,请带上最干净的代码或最佳性能。

+0

我想这是有道理的,只是尝试几种不同的方式 - 如果我能找到时间......谢谢! – Trees 2012-04-13 17:07:09