简体   繁体   中英

IIF Statement with and operator - SSRS

My IIF statement is giving an error, I need to check that 2 fields is not zero so that it does not give a division by zero error, please can someone help me:

=iif(isnumeric(sum(Fields!Month13.Value, "SKU")) and 
     isnumeric(sum(Fields!Month1.Value, "SKU")),
(sum(Fields!Month13.Value, "SKU") - sum(Fields!Month1.Value, "SKU")) / 
sum(Fields!Month1.Value, "SKU"),
0)

That has to do with how SSRS evaluates the Iif statement. To avoid errors you have to use two Iif statements

 = IIF(Sum(Fields!Month1.Value)=0,0,Sum(Fields!Month13.Value) -Sum(Fields!Month1.Value)) / IIF(Sum(Fields!Month1.Value)=0,1,Sum(Fields!Month1.Value)) 

Another option is using custom code functions like the one below

 Public Function Divider (ByVal Dividend As Double, ByVal Divisor As Double) If IsNothing(Divisor) Or Divisor = 0 Return 0 Else Return Dividend/Divisor End If End Function 

Depending on how you wanted to handle this you could do

=iif(isnumeric(sum(Fields!Month13.Value, "SKU")) and 
 isnumeric(sum(Fields!Month1.Value, "SKU")) and
 sum(Fields!Month1.Value, "SKU") > 0,
(sum(Fields!Month13.Value, "SKU") - sum(Fields!Month1.Value, "SKU")) / 
sum(Fields!Month1.Value, "SKU"),
0)

or put another IIF statement within the IIF statement to check that the sum of month1 is more than 0 else give a 1.

=iif(isnumeric(sum(Fields!Month13.Value, "SKU")) and 
 isnumeric(sum(Fields!Month1.Value, "SKU")),
(sum(Fields!Month13.Value, "SKU") - sum(Fields!Month1.Value, "SKU")) / 
iif(sum(Fields!Month1.Value, "SKU") > 0, sum(Fields!Month1.Value, "SKU"), 1)
0)

OK so finally I used this:

=IIf(Sum(Fields!Month13.Value) = 0, -1, 
iif(Sum(Fields!Month1.Value) = 0,1,
(Sum(Fields!Month13.Value) - Sum(Fields!Month1.Value)) / 
IIf(Sum(Fields!Month1.Value) = 0, 1, Sum(Fields!Month1.Value))))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM