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

时间:2014-12-04 10:25:33

标签: sql sql-server reporting-services percentage

使用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值很好,因为我刚刚在列组外创建了一个列并使用了与上面相同的表达式。

但是,我无法找到获取Min和Max%值的方法。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

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

参考:Get the minimum value between several columns

答案 1 :(得分:0)

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