Bonjour à toute la communauté,
mon problème est le suivant :
la requête suivante marche très bien sur mon cube (une sorte de distinctcount)
1 2 3 4
| WITH MEMBER [Measures].Nbre as Filter([Client].[Client Pk].[Client Pk].members, [Measures].[Montant] <> null).count
SELECT [Measures].Nbre on 0
from [VENTE]
where [DateInventaire].[Année-Sems-Trim-Mois-Jour].[Année].&[2012] |
Je dispose par ailleurs d'une dimension indicateur, et un de mes indicateurs (&[28]) renvoi au nombre de client tel que calculé ci dessus.
Pour faire en sorte d'avoir le même resultat, j'insère dans mon cube (onglet calcul de ssas) le code suivant :
1 2 3 4 5 6 7 8 9 10
| SCOPE ([VENTE_Indicateur].[Indicateur].&[28],[Measures].[Montant]); //Nombre de clients
THIS =
CASE WHEN [DateInventaire].[Année-Sems-Trim-Mois-Jour].currentmember.level.ordinal>0
THEN
Filter([Client].[Client Pk].[Client Pk].members, [Measures].[Montant] <> null).count
END
;
END SCOPE; |
je devrais alors obtenir le même resultat que plus haut avec la requête suivante :
1 2 3 4
| select [VENTE_Indicateur].[Indicateur].&[28] on 0,
[DateInventaire].[Année-Sems-Trim-Mois-Jour].[Année].&[2012] on 1
from [VENTE]
where ([Measures].[Montant]) |
Au lieu de ça, j'ai une erreur :
Récurrence infinie détectée, la boucle de dépendance est la suivante : 35->35
Qu'est ce qui m'échappe
Soit dit en passant, j'ai une table de fait de plus de 100 millions de lignes . donc impossible d'utiliser les techniques du genre many to many pour mon distinctcount.
En fait je n'arrive même pas à comprendre pourquoi un simple
DISTINCTCOUNT([Client].[Client Pk].[Client Pk].members)
ne marche pas (me renvoie 0 à tous les coups),
un
COUNT(nonempty([Client].[Client Pk].[Client Pk].members))
tourne à l'infini, ainsi que la solution de Mosha ici
Merci de m'éclairer les experts !
Partager