2017-02-03 5 views
0

У меня есть ниже выражения, которые я использую в моем докладеAttemted разделить на ноль в SSRS Expression

  =IIF((Sum(Fields!Starts.Value)-Sum(Fields!Withdrawn.Value))=0, Nothing, 
(Sum(Fields!Starts.Value)-Sum(Fields!Withdrawn.Value))/(Max(Fields!Year1Starts.Value))) 

При запуске отчета я получаю сообщение ниже и появляется как #ERROR

Warning 1 [rsRuntimeErrorInExpression] 
    The Value expression for the textrun ‘Textbox110.Paragraphs[0].TextRuns[0]’ contains an error: 
Attempted to divide by zero. 

Я попытался это, но получаю ту же ошибку:

=IIF((Sum(Fields!Starts.Value) - Sum(Fields!Withdrawn.Value)) = 0, Nothing, 
(Sum(Fields!Starts.Value) - Sum(Fields!Withdrawn.Value))/ 
IIF(Max(Fields!Year1Starts.Value)=0,1,Max(Fields!Year1Starts‌​.Value))) 

Может кто-нибудь пожалуйста помочь?

Аруна

ответ

1

Я попробовал это, и это работает:

=IIF(Max(Fields!Year1Starts.Value)=0,0,(Sum(Fields!Starts.Value) 
    - Sum(Fields!Withdrawn.Value))/IIF(Max(Fields!Year1Starts.Value)=0,1, 
Max(Fields!Year1Starts.Value))) 

Я следовал за этим:

=IIF (Denominator = 0, Nothing, Numerator/IIF(Denominator = 0, 1, Denominator)) 
1

Вы должны обращаться с делителем и предотвратить его попадание 0 в качестве значения. Что-то вроде:

=IIf(Fields!SomeField.Value = 0, 0, Fields!SomeOtherField.Value/IIf(Fields!SomeField.Value = 0, 1, Fields!SomeField.Value)) 

Это заменит 0 на 1 в делителе и, таким образом, позволит избежать этой ошибки.

Смежные вопросы