SSRS Expression Divide par zéro Erreur
J'ai un tableau matriciel de la boîte qui a une division de l'expression. Lors d'une division par zéro ou des valeurs null-je obtenir #Error
affiché dans mon rapport. J'ai essayé de créer un IIF
déclaration et testé avec des valeurs statiques. Cette vérifié ma syntaxe est correcte, mais je vois toujours l'erreur sur mes rapports.
=IIF(Sum(Fields!CY_Dollars.Value)=0, 0, (Sum(Fields!CY_Dollars.Value) - Sum(Fields!PY_Dollars.Value))/(Sum(Fields!PY_Dollars.Value)))
Alors je prend de l'année Courante de dollars, en soustrayant l'année Précédente dollars, et en divisant ce total par année précédente dollars pour obtenir le pourcentage de changement. Est-il une astuce pour cela que je ne suis pas arriver?!
source d'informationauteur d90
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ajouter une fonction à votre rapport du code qui gère le diviser par l'état zéro, ce qui rend un peu plus facile à mettre en œuvre dans plusieurs cellules, par exemple
Vous pouvez ensuite appeler ce dans une cellule de la sorte:
Je soupçonne que vous êtes en cours d'exécution dans la question où SSRS ne fait pas de court-circuit d'un
IIF
déclaration, même si vous êtes à la vérification de 0vous êtes toujours va frapper une erreur de division par zéro.Essayez quelque chose comme:
À l'aide de deux
IIf
déclarations signifie que vous éviter l'erreur en utilisant l'équation0/1
quandSum(Fields!PY_Dollars.Value)
= 0, donc juste retour 0.Également noter que l'expression ci-dessus est la vérification de
Sum(Fields!PY_Dollars.Value) = 0
mais le vôtre est en train de vérifierSum(Fields!CY_Dollars.Value) = 0
- le dénominateur besoins du zéro vérifiez ici.Pour éviter la surcharge de mise à jour du code, la solution ci-dessous se sent tidiest pour moi. Elle permet d'éviter la division par zéro dans le dénominateur par l'ajout le plus petit possible
Double
valeur (Double.Epsilon
qui est4.94e-324
). Cette valeur est trop petite pour affecter la valeur de la fraction pour quoi que ce soit de personnes SSRS. Il évite aussi l'imbrication des fonctions IIF.