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.