【问题标题】:SSRS - Min, Max and Average Percentage Values for Each Row in a MatrixSSRS - 矩阵中每一行的最小、最大和平均百分比值
【发布时间】:2014-12-04 19:15:01
【问题描述】:

使用 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%  ..   ..   ..

..    ..   ..   ..   ..   ..  

..    ..   ..   ..   ..   ..

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

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

有什么想法吗?

【问题讨论】:

  • 感谢大家的回答。在我的帖子中可能还不清楚,但 Col1/2/3 是基于矩阵列分组的,所以可以有任意数量的这些......
  • 我怀疑在这种情况下没有通用的解决方案。是否有机会将分组移动到 SQL 部分并让 SSRS 进行演示?

标签: sql sql-server reporting-services percentage


【解决方案1】:
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      

【讨论】:

    【解决方案2】:

    试试这个:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-11
      • 2012-10-03
      • 2012-10-14
      • 2016-10-23
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多