使用外部组总计计算 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,避免了除以零的错误。