SSRS - 矩阵中每行的最小值、最大值和平均百分比值



使用 SSRS 2008R2

我设置了一个矩阵,在每个单元格中显示 % 值:

         ColGrp1  ColGrp2 ColGrp3
RowGrp1     5%      80%     50%
RowGrp2     ..      ..       ..
RowGrp3     ..      ..       ..

派生百分比值的表达式如下所示:

=Sum(Fields!FieldX.Value)
/
Count(Fields!FieldX.Value)

字段 X 在数据集中包含 0 或 1,所以我在上面的数据中看到 1 的百分比 - 这很好。

我的问题是我需要包括每个行组的最小值、最大值和平均值:

Col1  Col2 Col3  Min  Max Avg
5%    80%  50%  ..   ..   ..
..    ..   ..   ..   ..   ..  
..    ..   ..   ..   ..   ..

avg 值很好,因为我刚刚在列组之外创建了一个列并使用了与上面相同的表达式。

但是,我找不到获取最小值和最大值百分比值的方法。

有什么想法吗?

SELECT Col1, Col2, Col3, CASE WHEN Col1 < Col2 AND Col1 < Col3 
                               THEN Col1
                               WHEN Col2 < Col1 AND Col2 < Col3 THEN Col2 
                               ELSE Col3
                               END AS Min, 
                          CASE WHEN Col1 > Col2 AND Col1 > Col3 
                               THEN Col1
                               WHEN Col2 > Col1 AND Col2 > Col3 THEN Col2 
                               ELSE Col3
                               END AS Max, 
       ((Col1 + col2 + col3) / 3 ) AS Avg
FROM table      

试试这个:

SELECT
    *,
    (select MIN(col) from (VALUES(Col1),(Col2),(Col3),......) x([col])) [MIN],
    (select MAX(col) from (VALUES(Col1),(Col2),(Col3),......) x([col])) [MAX]
FROM
    (
    -- your query --
    ) AS T

参考:获取几列之间的最小值

最新更新