使用外部组总计计算 SSRS 2008R2 中的内部组百分比
Using outer Group Totals to calculate inner Group Percentages in SSRS 2008R2
我正在使用 SSRS 2008R2 编写一份英国损益报告,并且正在为百分比计算而苦恼
这里有一个例子来解释我的问题
Detail
Group1 Group2 Invoice Number Value %
Sales Total 810
Uk Sales 150
UK964423 50
UK452872 100
European Sales 450
dkkmalk 200
dkf682 250
Rest of World Sales 210
USA12353 100
CHIN25410 100
AFGAN14422 10
Variable Costs 455 56%
Material 200 25%
Sand 150
Steel 50
Wages 225 28%
Basic Pay 175
Overtime 50
Other Production Costs 30 4%
Packaging 20
Consumables 10
可变成本 56% 的百分比计算为可变成本除以销售额 (455/810)。 Material 百分比类似于 Material 总销售额除以总销售额 (200/810) 等等,工资和其他生产成本
请问如何实现这些计算。在大多数情况下,我可以通过 header 组中的这样一个公式来获得提名人:
=sum(iif (GroupFieldName.Value="Variable Costs",FieldValue.Value,nothing)
但是Total Sales的分母我好像算不出来!
欢迎提出任何建议,请记住我想要 "future proof" SSRS2015 和 SSRS 2017 的公式/代码解决方案
提前致谢
由于分组,您的表达式无法正常工作。分组将您的 FieldValues 分开,因此您的 SUM 仅获得该组的总数。
表达式应使用您的组字段的总和除以数据集中的所有值。
=SUM(Fields!FieldValue.Value) / SUM(Fields!FieldValue.Value, "Dataset1")
由于 SSRS 检查被零除错误,您可能需要检查这种可能性。
=IIF(SUM(Fields!FieldValue.Value, "Dataset1") = 0, 0, SUM(Fields!FieldValue.Value) )
/
IIF(SUM(Fields!FieldValue.Value, "Dataset1") = 0, 1, SUM(Fields!FieldValue.Value, "Dataset1")
对于 IIF,如果 SUM 为 0,则计算结果为 0/1,即 0,避免了除以零的错误。
我正在使用 SSRS 2008R2 编写一份英国损益报告,并且正在为百分比计算而苦恼
这里有一个例子来解释我的问题
Detail
Group1 Group2 Invoice Number Value %
Sales Total 810
Uk Sales 150
UK964423 50
UK452872 100
European Sales 450
dkkmalk 200
dkf682 250
Rest of World Sales 210
USA12353 100
CHIN25410 100
AFGAN14422 10
Variable Costs 455 56%
Material 200 25%
Sand 150
Steel 50
Wages 225 28%
Basic Pay 175
Overtime 50
Other Production Costs 30 4%
Packaging 20
Consumables 10
可变成本 56% 的百分比计算为可变成本除以销售额 (455/810)。 Material 百分比类似于 Material 总销售额除以总销售额 (200/810) 等等,工资和其他生产成本
请问如何实现这些计算。在大多数情况下,我可以通过 header 组中的这样一个公式来获得提名人:
=sum(iif (GroupFieldName.Value="Variable Costs",FieldValue.Value,nothing)
但是Total Sales的分母我好像算不出来!
欢迎提出任何建议,请记住我想要 "future proof" SSRS2015 和 SSRS 2017 的公式/代码解决方案
提前致谢
由于分组,您的表达式无法正常工作。分组将您的 FieldValues 分开,因此您的 SUM 仅获得该组的总数。
表达式应使用您的组字段的总和除以数据集中的所有值。
=SUM(Fields!FieldValue.Value) / SUM(Fields!FieldValue.Value, "Dataset1")
由于 SSRS 检查被零除错误,您可能需要检查这种可能性。
=IIF(SUM(Fields!FieldValue.Value, "Dataset1") = 0, 0, SUM(Fields!FieldValue.Value) )
/
IIF(SUM(Fields!FieldValue.Value, "Dataset1") = 0, 1, SUM(Fields!FieldValue.Value, "Dataset1")
对于 IIF,如果 SUM 为 0,则计算结果为 0/1,即 0,避免了除以零的错误。