SSRS - 基于Tablix数据区域计算百分比的表达式

时间:2013-11-12 16:15:43

标签: sql sql-server reporting-services

我有一份SSRS报告,其中包含以下tablix6:

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)过滤数据。这实际上,当试图计算总和时,我得到的值不正确。

我想要总计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正在过滤数据集以仅显示所选项目。

3 个答案:

答案 0 :(得分:3)

我会使用类似

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您可以使用OVER功能。

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

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

希望这有帮助