使用外部组总计来计算SSRS 2008R2中的内部组百分比

时间:2019-06-04 22:15:10

标签: reporting-services ssrs-2012 ssrs-2008-r2 ssrs-2014 ssrs-2017

我正在研究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)。物料百分比是相似的物料总数除以总销售额(200/810),以此类推,包括工资和其他生产成本

请问如何实现这些计算。在大多数情况下,我可以通过组头中的公式来获得提名者:

=sum(iif (GroupFieldName.Value="Variable Costs",FieldValue.Value,nothing)

但是我似乎无法计算总销售额的分母!

欢迎提出任何建议,请记住我要“证明未来” SSRS2015和SSRS 2017的公式/代码解决方案

预先感谢

1 个答案:

答案 0 :(得分:0)

由于分组原因,您的表达式无法正常工作。分组将您的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),并且避免了除以零的错误。