Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 与分组聚合中的数据集级聚合进行比较_Sql_Reporting Services - Fatal编程技术网

Sql 与分组聚合中的数据集级聚合进行比较

Sql 与分组聚合中的数据集级聚合进行比较,sql,reporting-services,Sql,Reporting Services,背景 我有一个由事件、客户和我从SQLServer2008R2获得的区域组成的联接表。查询很简单,我选择了相关字段并过滤掉了不相关的数据。我得到了一个ResolveTime字段作为datediff(…),我有一个矩阵tablix,它将数据组织在按区域分组的列中,然后是按区域分组的列,以及按事件所有者分组的行中 字段显示平均值、计数和(这里是我的问题所在)低于平均值的百分比。在整个数据集的第二个基本表中计算相同的细节。如果您感到困惑,这里是表格的屏幕截图 问题 我用于表示低于平均值的百分比的表达

背景

我有一个由事件、客户和我从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
工作起来很有魅力。希望这能帮助其他可能有同样问题的人