2014-03-26 99 views
0

我在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()函數時。任何想法如何解決這個問題?

+3

請參閱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各種解決方法 –

+1

確實。 VBScript中沒有'IIf'的短路評估。如何處理它將取決於您的數據以及'Sum(Fields!ReportingHours.Value)'可能爲零或Nothing時想要發生的情況。 –

回答

0

嘗試下面的表達式: -

=IIf(IsNothing(sum(Fields!Hours.Value)), 0, Sum(Fields!Hours.Value)/Sum(Fields!ReportingHours.Value) 

編輯

我編輯了我以前的帖子。

+0

建議的解決方案不起作用。看來任何包含SUM()函數的兩個字段的表達式都會返回一個錯誤。如果我只在一個字段上使用SUM(),它就會起作用。我無法弄清楚如何解決它。 – user3465260

+0

@ user3465260我編輯了我以前的帖子。請檢查並發表評論。 – KrazzyNefarious