2

两天以来,我一直在用头撞墙……

我的情况是这样的:

我有一个记录集,我在 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) 来获得正确的数字....但是,如果我想聚合到区域级别(或更高级别),我无法做到工作。我不能做 SUM( Max(num_records) ) 因为那没有意义,但是我在 SQL 中安排查询它也没有加起来。

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

PS。我正在使用 SSRS 2008R2

4

2 回答 2

2

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

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

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

于 2013-07-30T18:55:14.260 回答
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
于 2013-07-30T18:49:23.233 回答