juin
26
Comment éviter les erreurs de type Division by Zero et les valeurs 1.#INF en MDX ?
En MDX, en calculant des taux, une erreur fréquente est la division par zéro quant le membre MDX retourné par la requête utilisé en tant que dividende est null ou égal à zéro.
Pour éviter les erreurs division by zero ou les résultats 1.#INF dans Reporting Services.
On teste si le membre utilisé dans la division comme diviseur est égal à zéro, si c'est le cas on retourne la valeur NULL :
MEMBER MEASURES.[Evolution] AS
IIF( ([Measures].[Ventes Produit], [Date].[Date].CURRENTMEMBER.PREVMEMBER)=0, NULL,
([Measures].[Ventes Produit]-([Measures].[Ventes Produit], [Date].[Date].CURRENTMEMBER.PREVMEMBER))
/
([Measures].[Ventes Produit], [Date].[Date].CURRENTMEMBER.PREVMEMBER)
)
Ainsi à la place du #INF on aura la valeur NULL.
Division by Zero, MDX, Microsoft SSAS, Microsoft SSRS
On teste si le membre utilisé dans la division comme diviseur est égal à zéro, si c'est le cas on retourne la valeur NULL :
MEMBER MEASURES.[Evolution] AS
IIF( ([Measures].[Ventes Produit], [Date].[Date].CURRENTMEMBER.PREVMEMBER)=0, NULL,
([Measures].[Ventes Produit]-([Measures].[Ventes Produit], [Date].[Date].CURRENTMEMBER.PREVMEMBER))
/
([Measures].[Ventes Produit], [Date].[Date].CURRENTMEMBER.PREVMEMBER)
)
Ainsi à la place du #INF on aura la valeur NULL.
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire