Warum ist meine IIF -Aussage nicht wahr, wenn die Bedingung korrekt ist?
-
26-09-2019 - |
Frage
Dies ist meine Aussage:
iif(sum(Fields!myfield1.Value) = 0, 0, sum(Fields!myField2.Value)/sum(Fields!myField1.Value))
Irgendwelche Vorschläge?
Lösung
Wahrscheinlich es ist Bewertung als wahr. Wie in anderen Kommentaren erwähnt, erhalten Sie trotzdem einen Fehler, da IIF () alle Parameterausdrücke unabhängig vom Ergebnis des Tests bewertet.
Der Fehler kann vermieden werden, indem ein weiterer IIF () im Divisor hinzugefügt wird.
iif(
sum(Fields!myfield1.Value) = 0,
0,
sum(Fields!myField2.Value) / iif(
sum(Fields!myfield1.Value) = 0,
1,
sum(Fields!myField1.Value)
)
)
Jetzt erhalten Sie Null, wenn MyField1 Null ist und kein Fehler geworfen wird.
(Sie sollten wahrscheinlich 'n/a' oder nur eine leere Zeichenfolge anzeigen, wenn der Trenner Null ist.)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow