¿Por qué mi declaración IIF no está evaluando verdadera cuando la condición es correcta?

StackOverflow https://stackoverflow.com/questions/2822233

Pregunta

Esta es mi declaración:

iif(sum(Fields!myfield1.Value) = 0, 0, sum(Fields!myField2.Value)/sum(Fields!myField1.Value))

¿Alguna sugerencia?

¿Fue útil?

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
scroll top