【问题标题】:SSRS - Expression to calculate percentage based on Tablix data regionSSRS - 根据 Tablix 数据区域计算百分比的表达式
【发布时间】:2013-11-12 16:15:43
【问题描述】:

我有一份带有以下 tablix6 的 SSRS 报告:

Account Types
----------------------------------------------
Code   Description              Total   %
-----------------------------------------------
A      Status Code: None        46549   
C      Status Code: Close       12956
L      Status Code: Deceased    477

填充此 Tablix 的数据集按(Section = 4 和 DataType = 4)过滤数据。实际上,在尝试计算 Total 的总和时,我得到了一个不正确的值。

我试图得到 59982 的总和。

我只需要这个 tablix 过滤数据区域的总和才能计算每个行项目的百分比。

这是我想要达到的最终结果:

Account Types
----------------------------------------------
Code   Description              Total   %
-----------------------------------------------
A      Status Code: None        46549   77%
C      Status Code: Close       12956   21%
L      Status Code: Deceased    477     0.7%

注意:此 Tablix 正在过滤数据集以仅显示所选项目。

【问题讨论】:

  • 您有我们可以使用的 SQL 语句吗?

标签: sql sql-server reporting-services


【解决方案1】:

我会使用类似于

的表达式
=sum(Fields!Total.Value) / sum(Fields!Total.Value, "DataSetName") 

假设过滤器作为数据集上的参数工作

【讨论】:

    【解决方案2】:

    如果您可以使用用于生成问题中的第一个表的查询,那么您可以使用以下内容来获取百分比:

    SELECT M.Code, M.Description, M.Total, 
      M.Total / 
      (
        SELECT SUM(S.Total) 
        FROM AcountSummary AS S
      ) * 100 AS PercentageOf
    FROM AcountSummary AS M
    

    【讨论】:

      【解决方案3】:

      您可以使用 OVER 功能。

      SELECT Code, Description, Total, CAST(Total AS FLOAT) / SUM(Total) OVER() [Percentage]
      FROM AccountType
      

      将此添加到您的数据源, 在此之后,您可以格式化文本框以使用格式 P2 表示带 2 位小数的百分比。

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-17
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        相关资源
        最近更新 更多