Sql 与分组聚合中的数据集级聚合进行比较
背景 我有一个由事件、客户和我从SQLServer2008R2获得的区域组成的联接表。查询很简单,我选择了相关字段并过滤掉了不相关的数据。我得到了一个ResolveTime字段作为datediff(…),我有一个矩阵tablix,它将数据组织在按区域分组的列中,然后是按区域分组的列,以及按事件所有者分组的行中 字段显示平均值、计数和(这里是我的问题所在)低于平均值的百分比。在整个数据集的第二个基本表中计算相同的细节。如果您感到困惑,这里是表格的屏幕截图 问题 我用于表示低于平均值的百分比的表达式如下:Sql 与分组聚合中的数据集级聚合进行比较,sql,reporting-services,Sql,Reporting Services,背景 我有一个由事件、客户和我从SQLServer2008R2获得的区域组成的联接表。查询很简单,我选择了相关字段并过滤掉了不相关的数据。我得到了一个ResolveTime字段作为datediff(…),我有一个矩阵tablix,它将数据组织在按区域分组的列中,然后是按区域分组的列,以及按事件所有者分组的行中 字段显示平均值、计数和(这里是我的问题所在)低于平均值的百分比。在整个数据集的第二个基本表中计算相同的细节。如果您感到困惑,这里是表格的屏幕截图 问题 我用于表示低于平均值的百分比的表达
=Sum(iif(Fields!ResolveTimeMinutes.Value < avg(fields!ResolveTimeMinutes.Value), 1, 0)) / countrows()
=Sum(iif(字段!ResolveTimeMinutes.Value
当我在矩阵中使用它时,效果很好,但基于组内的平均值。我尝试将数据集用作求和和和平均值的作用域,但两者都返回一个有关嵌套聚合和作用域的错误。要么我不能在聚合中嵌套具有作用域的聚合,要么在作用域聚合中嵌套另一个聚合
=Sum(iif(Fields!ResolveTimeMinutes.Value < Variables!avgResolveTime.Value ), 1, 0)) / countrows()
我尝试创建一个变量,其中包含我感兴趣的比较值,但不允许在聚合中引用该值
=Sum(iif(Fields!ResolveTimeMinutes.Value < Variables!avgResolveTime.Value ), 1, 0)) / countrows()
=Sum(iif(字段!ResolveTimeMinutes.Value
这给了我一个错误,变量值不能在聚合函数中使用。
我甚至尝试将平均值单独作为一个单独的数据集进行计算,并尝试在比较中引用平均值,但另一个错误是关于嵌套聚合和我想做的事情
如果您有任何建议,我们将不胜感激。好的,今天上午就解决了 我创建了一个内部参数,使其在报告中不可见,并从计算“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()
表达式:
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()
=Sum(iif(字段!ResolveTimeMinutes.Value
工作起来很有魅力。希望这能帮助其他可能有同样问题的人