¿Por qué mi declaración IIF no está evaluando verdadera cuando la condición es correcta?
-
26-09-2019 - |
Pregunta
Esta es mi declaración:
iif(sum(Fields!myfield1.Value) = 0, 0, sum(Fields!myField2.Value)/sum(Fields!myField1.Value))
¿Alguna sugerencia?
Solución
Probablemente es evaluando como verdadero. Como se menciona en otros comentarios, recibirá un error de todos modos porque IIF () evalúa todas las expresiones de parámetros, independientemente del resultado de la prueba.
El error se puede evitar agregando otro iif () en el divisor.
iif(
sum(Fields!myfield1.Value) = 0,
0,
sum(Fields!myField2.Value) / iif(
sum(Fields!myfield1.Value) = 0,
1,
sum(Fields!myField1.Value)
)
)
Ahora obtendrá cero si myfield1 es cero y no se lanza ningún error.
(Probablemente debería mostrar 'N/A' o simplemente una cadena vacía cuando el divisor es cero).
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow