【发布时间】:2014-03-28 02:46:35
【问题描述】:
我在 SSRS 中有如下表达式:-
=IIf(IsNothing(Fields!Hours.Value), 0, Sum(Fields!Hours.Value) / Sum(Fields!ReportingHours.Value))
表达式显示为#Error。我删除了等式的除法部分,只剩下这个:
=IIf(IsNothing(Fields!Hours.Value), 0, Sum(Fields!Hours.Value))
然后出现正确的数字。如果我执行加法运算,计算也会出错。在使用 Sum() 函数时,它似乎不喜欢执行数学运算。如果我在没有 Sum 的情况下进行简单除法,如下表达式:
=IIf(IsNothing(Fields!Hours.Value), 0, Fields!Hours.Value / Fields!ReportingHours.Value)
然后数字显示正常。只有当我在表达式上有 Sum() 函数时才会导致错误。关于如何解决这个问题的任何想法?
【问题讨论】:
-
确实如此。 VBScript 中没有对
IIf的短路评估。您如何处理它取决于您的数据以及当Sum(Fields!ReportingHours.Value)可能为零或无时发生的情况。
标签: sql regex reporting-services