需要在字段表达式窗口中从SSRS SSDT报表计算中排除零值

时间:2018-02-08 07:52:30

标签: reporting-services sql-server-data-tools ssrs-tablix

我将生产力计算为 TotalMinutes /(TotalHours * 60) 我的一些TotalHours值= 0,我需要将它们从计算中排除。

如何在Field Expression窗口中编写它?

我目前的表情是 (我也在这个字段中将零设置为“99”值):

=IIf(Fields!TotalHours.Value=0,99,
 Sum(Fields!TotalMinutes.Value/(Fields!TotalHours.Value*60)))

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

这是未经测试但应该有用......

问题在于IIF将评估两个表达式,即使从未使用过,因此为了避免除以零,我们需要将潜在的零值换成1.这不会影响结果,因为它永远不会用作最终输出。

=SUM(
IIF(Fields!TotalHours.Value=0,99
    , IIF(Fields!TotalHours.Value=0,0, Fields!TotalMinutes.Value) 
        /  IIF(Fields!TotalHours.Value=0, 1, Fields!TotalHours.Value * 60)
    )
)

所以这里发生的是,如果TotalHours为零,我们在外部IIF的False部分执行0/1只是为了满足IIF语句(它实际上永远不会被使用)