我在SSRS以下表達式: -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()
函數時執行數學運算。如果我做沒有總和的簡單劃分,如下面的表達式所示:
=IIf(IsNothing(Fields!Hours.Value), 0, Fields!Hours.Value/Fields!ReportingHours.Value)
然後數字顯示正常。只有當我在導致錯誤的表達式上使用Sum()
函數時。任何想法如何解決這個問題?
請參閱http://stackoverflow.com/questions/13345926/how-can-i-eliminate-error-on-ssrs-expression-when-dividing-by-zero或http://stackoverflow.com/questions/ 19189132/ssrs-expression-by-zero-error各種解決方法 –
確實。 VBScript中沒有'IIf'的短路評估。如何處理它將取決於您的數據以及'Sum(Fields!ReportingHours.Value)'可能爲零或Nothing時想要發生的情況。 –