MDX : rollup calculation on leaf level


C’est une question m’est assez souvent posé : comment créer un mesure calculée sur le niveau feuille d’un attribut et faire que celle-ci s’agrège correctement ?

En prenant le modèle AdventureWorksDW2012, imaginons que nous ne voulions analyser que les modèles de produits dont les ventes sont supérieures à un certain seuil. 

Je déclare dans un premier temps la mesure de la façon la plus simple qu’il soit :

CREATE MEMBER CURRENTCUBE.[MEASURES].[Test] AS IIF( [Measures].[Internet Sales Amount] > 3000, [Measures].[Internet Sales Amount], NULL ), FORMAT_STRING = « #,#.00 », VISIBLE = 1;

On constate alors que la mesure fonctionne correctement sur le niveau feuille de l’attribut, mais que le total général n’est pas celui désiré.

Pour corriger ce problème, il suffit tout simplement de mettre en place un scope nous permettant :

d’afficher la mesure si l’on est sur le niveau feuille de l’attribut…