Использование внешних итогов группы для расчета внутреннего процента группы в SSRS 2008R2 - PullRequest
0 голосов
/ 05 июня 2019

Я работаю над отчетом о прибылях и убытках в Великобритании в 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 голосов
/ 05 июня 2019

Ваше выражение работает неправильно из-за группировки. Группировка разделяет ваши 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")

При ИИФ, если сумма равна 0, расчет равен 0/1, что равно 0 и позволяет избежать ошибки деления на ноль.

...