我已经在两天的大部分时间里把头撞在墙上了......
我的情况是:
我有一个记录集,我已经在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
答案 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