2012-09-19 39 views
2

背景比较对数据集级别的聚集分组聚集体内

我有一个连接表,包括事件,客户和领域我是从SQL Server 2008 R2中获得的。查询很简单,我选择了相关字段并筛选出无关数据。我得到一个ResolveTime字段作为datediff(...)我有一个矩阵tablix,按照地区组织数据列,然后区域和按事件所有者分组的行。

该字段显示平均值,计数和(这里是我的问题所在)百分比低于平均水平。在整个数据集的第二个基本表中计算相同的细节。如果你感到困惑,这里是表格的截图。

Table Setup

问题

我使用低于平均的百分比表达如下:

=Sum(iif(Fields!ResolveTimeMinutes.Value < avg(fields!ResolveTimeMinutes.Value), 1, 0))/countrows() 

当我使用此基质内它工作正常,但作品基于该组内的平均值。我试图使用数据集作为我的作用域的总和和平均值,但都返回有关嵌套聚合和范围的错误。要么我不能在集合内嵌套一个范围,要么在集合范围内集合另一个集合。

我已经尝试创建一个包含我比较感兴趣的值的变量,但我不允许在集合中引用它。

=Sum(iif(Fields!ResolveTimeMinutes.Value < Variables!avgResolveTime.Value), 1, 0))/countrows() 

这给了我,variable values cannot be used in aggregate functions.

我甚至试过单独计算的平均值作为一个单独的数据集,并试图引用错误的比较,但关于嵌套聚集另一个错误,我想要什么去做。

任何建议将不胜感激。

回答

0

好的,今天早上想通了。

我创建了一个内部参数,使其在报告的不可见,并检索来自同一数据集所计算的“GlobalAverage”我试图直接从IFF函数引用的默认值。

查询:

SELECT avg(datediff(minute, CreatedDateTime, ResolvedDateTime)) as AverageTTR 
from incident 
where changeid is null and linkedproblem is null and count_numberoftasks = 0 

表达:

=Sum(iif(Fields!ResolveTimeMinutes.Value < Parameters!GlobalAverage.Value, 1, 0))/countrows() 

就像一个魅力。希望能帮助其他可能有同样问题的人!