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)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
DISTINCTCOUNT([Client].[Client Pk].[Client Pk].members)
ne marche pas (me renvoie 0 à tous les coups),
un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
COUNT(nonempty([Client].[Client Pk].[Client Pk].members))
tourne à l'infini, ainsi que la solution de Mosha ici

Merci de m'éclairer les experts !