本文使用一个示例,说明如何使用 Sum 函数和算术运算符在 SSRS 中计算特定组或整个表中的占总计的百分比。
为了演示 SSRS 占总计的百分比计算,我们使用下面的员工表,该表有 15 条记录,按职业分组。下图显示了表格报表中的记录。

右键单击详细信息行中的任何字段,选择插入行,然后选择组外部—下方选项添加一个新行。接下来,合并前三列以显示每个组之间的差异。对于 SSRS 占总计的百分比计算,在收入和销售的右侧添加一个新列,并将标题命名为 GPer Inc 和 GPer Sl。然后,右键单击 GPer Sl 下方的文本框,然后选择表达式选项。为了理解报表,我建议您参考 SSRS 中的 图表、表格、分组 和 格式化表格 文章。
在 SSRS 中计算占总计的百分比
它会打开以下表达式窗口来计算占总计的百分比。要达到此目的,我们必须使用聚合 Sum 函数。下面的代码将每个个人销售额除以总员工销售额,然后乘以 100,以计算每个职业组的占总计的百分比。有关更多函数 >> 单击此处!
=(Fields!Sales.Value / Sum(Fields!Sales.Value, "Occupation")) * 100

类似地,右键单击 GPer Inc 下方的文本框,然后编写以下 SSRS 表达式,以计算每个职业组的年收入占总计的百分比。
=(Fields!YearlyIncome.Value/ Sum(Fields!YearlyIncome.Value, "Occupation")) * 100
为了向您展示实际结果与百分比之间的差异,我们将格式化 GPer Inc。为此,右键单击文本框,然后选择文本框属性选项。接下来,将数字格式从默认更改为百分比,并添加两位小数。这将在每个值前添加百分比符号。

请单击 SSRS 报表预览选项卡,查看每个职业组的占总计的员工年收入和销售额的百分比。如您所见,GPer Sl 显示了正确的但没有 % 符号的结果。然而,GPer Inc 显示了奇怪的结果。如果您将值格式化为百分比,默认情况下它会将现有值乘以 100。

请编辑表达式并删除 100 以消除额外的乘法。
=Fields!YearlyIncome.Value / Sum(Fields!YearlyIncome.Value, "Occupation")
第二个选项是使用 FormatPercent 函数,该函数允许您避免数字格式化步骤。下面的 SSRS FormatPercent 表达式计算每个职业组的占总计销售额的百分比。
=FormatPercent(Fields!Sales.Value / Sum(Fields!Sales.Value, "Occupation"), 2)
报表预览显示了计算每个职业组的占总计的收入和销售额百分比的正确结果。

SSRS 占总计的百分比计算的表格级别示例
我将创建另外两列,并将其命名为 TPer Inc 和 Var TPer Sl,以计算整个表格的占总计的百分比。为此,您必须将组名(“Occupation”)替换为表名(“Tablix1”)或数据集名称(“DSet”)。首先,为 TPer Inc 标题下的文本框添加以下表达式。接下来,将文本框数字属性格式化为百分比。
=(Fields!YearlyIncome.Value / Sum(Fields!YearlyIncome.Value, "DSet"))
类似地,为 GPer Sl 标题下的文本框编写以下 SSRS 表达式,以查找整个表占总计的销售额的百分比。同样,我们使用了 FormatPercent 来避免格式化文本框数字属性。
=FormatPercent(Fields!Sales.Value / Sum(Fields!Sales.Value, "DSet"), 2)
下面的报表计算了每个职业组的占总计的收入和销售额百分比,并包括了完整的员工表。

以下两个 SSRS 表达式计算了整个组相对于表的占总计的百分比。
=FormatPercent(Sum(Fields!YearlyIncome.Value, "Occupation") / Sum(Fields!YearlyIncome.Value, "DSet"), 2)
=FormatPercent(Sum(Fields!Sales.Value, "Occupation") / Sum(Fields!Sales.Value, "DSet"), 2)
报表预览显示了相同的结果。
