SSRS - 总计百分比

时间:2016-08-16 17:46:35

标签: ssrs-2012

  C1  C2  C3 C4 C5  C6 C7 C8    Total   **Percentages**

======================================================

R1  6   1   8  8   2   1  1 0   27  **60%**
R2  0   0   0  5   1   1  0 0   7   **16%**
R3  2   0   3  2   0   1  0 0   8   **18%**
R4  2   0   0  1   0   0  0 0   3   **7%**
TTL10  1   11 16   3   3  1 0   45  **100%**

如何计算SSRS中的各行百分比

谢谢。

3 个答案:

答案 0 :(得分:1)

如果您没有过滤数据集,可以使用数据集总和来获取总计,并将其用作表达式中的分母。

如果您的表格是一个矩阵, C1 - C8 都来自一个字段,那么您的公式就是:

=Sum(Fields!YourField.Value) / Sum(Fields!YourField.Value, "Dataset1")

如果C1-C8字段位于不同的字段中,您可以使用与总列相同的表达式作为分子,然后除以所有其他字段的SUM。

=Sum(Fields!C1.Value + Fields!C2.Value + Fields!C3.Value + Fields!C4.Value + Fields!C5.Value + Fields!C6.Value + Fields!C7.Value + Fields!C8.Value) 
/ 
Sum(Fields!C1.Value + Fields!C2.Value + Fields!C3.Value + Fields!C4.Value + Fields!C5.Value + Fields!C6.Value + Fields!C7.Value + Fields!C8.Value, "Dataset1"))

答案 1 :(得分:0)

我将使用SQL而不是SSRS。这是我的方法。对于SSRS here是链接。

DECLARE @YourTable TABLE
(
Col INT
,Col1 INT
,Col2 INT
,Col3 INT

)

INSERT INTO @YourTable VALUES
(1 , 20, 10, 15)
,(2 , 30, 12, 14)
,(2 , 22, 2, 4)
,(3 , 3, 10, 15)
,(5 , 5, 14, 14)
,(2 , 21, 32, 4)
SELECT * FROM @YourTable


; WITH CTE AS

(SELECT *,Col+Col1+Col2+Col3 AS SumCol FROM @YourTable)

SELECT *, CAST(SumCol*100.0 / SUM(SumCol) OVER()  as DECIMAL(28,2)) FROM CTE

答案 2 :(得分:0)

这是另一种方法:

  1. 在第一行数据上方的详细信息组之外创建一行。
  2. 在新行中填充文本框= Sum(Fields!Total.Value)。将文本框重命名为独特的名称,例如Denominator。
  3. 隐藏行。
  4. 对于详细信息行中的百分比公式,请使用以下内容:

    = Sum(Fields!Total.Value)/ ReportItems!Denominator.Value