SSRS聚合聚合

时间:2013-07-30 18:36:09

标签: sql reporting-services

我已经在两天的大部分时间里把头撞在墙上了......

我的情况是:

我有一个记录集,我已经在SSRS表中分成4组。他们是:

StartPeriod 
  --> Area
     --> Job#
        --> Details

有问题的列包含两个不同的记录计数。一个是带有错误的记录数,另一个是该组的记录总数(这样我可以运行一个百分比)。

例如:

在细节层面,我可能有一个包含4个错误的项目,一个包含6个项目的项目,总共有20个记录。这意味着记录的总数是重复的,这意味着我无法对这个数字求和,否则我将对我的记录总数进行重复计算。

StartPeriod - Area - Job# - Item  - Errors - totalRecords
 January    - 123  - Job3 - item1 -   4    -     20
 January    - 123  - Job3 - item2 -   6    -     20

我可以在Job#级别解决这个问题,因为我可以简单地说Max(num_records)来获得正确的数字....但是如果我想要汇总到Area级别(或更高)我不能让事情发挥作用。我不能做SUM(Max(num_records)),因为这没有任何意义,但是我在SQL中安排查询它也没有加起来。

我觉得这是一个相当普遍的问题,所以我不确定为什么我会遇到这么多麻烦。我有什么想法可以解决这个问题?我希望我能清楚地解释自己。

PS。我正在使用SSRS 2008R2

2 个答案:

答案 0 :(得分:2)

更好地利用群组,数据已存在于您的查询中。

CountRows("Details")
Sum(Errors, "Details")

这假设您在详细级别创建的组称为“详细信息”。

答案 1 :(得分:0)

为您的查询尝试类似的内容:

declare @totcount int
select @totcount = sum(errors) from your_table
select errors, errors/@totcount as [% of total] from your_table 

至于该地区:

declare @totcount int
select @totcount = sum(errors) from your_table
select area, sum(errors)/@totcount as [% of total] 
from your_table 
group by area