Les structures pertinentes de mon cube sont les suivantes: J'ai une hiérarchie avec "Class" et "SubClass". J'ai aussi une mesure appelée "Value" qui est ce que j'essaie d'obtenir.Requête MDX contenant 2 dimensions de la même hiérarchie
Une requête simple peut ressembler à:
SELECT
NON EMPTY ([Measures].[Value]) ON COLUMNS,
NON EMPTY ([Some Dimension].[Class Hierarchy].[Class]) ON ROWS
FROM [MyCube]
Et je peux lire évidemment le SubClass en utilisant la HIÉRARCHIE qui est retourné à ADOMD.
Mon problème est double, premièrement comment est-ce que je pourrais "aplatir" cette hiérarchie pour recevoir à la fois Class et SubClass en tant que membres discrets dans le CellSet? Cela ne fonctionne pas:
SELECT
NON EMPTY ([Measures].[Value]) ON COLUMNS,
NON EMPTY (
[Some Dimension].[Class Hierarchy].[Class],
[Some Dimension].[Class Hierarchy].[Sub Class]
) ON ROWS
FROM [MyCube]
La hiérarchie Hiérarchie des classes est utilisée plus d'une fois dans la fonction Crossjoin
question Deuxièmement, ce que je dois actuually à faire est de filtrer ci-dessus sur les classes particulières, encore cela ne fonctionnera pas pour la même raison que ci-dessus.
SELECT
NON EMPTY ([Measures].[Value]) ON COLUMNS,
NON EMPTY (
{[Some Dimension].[Class Hierarchy].[Class].&[ClassA],[Some Dimension].[Class Hierarchy].[Class].&[ClassB]},
[Some Dimension].[Class Hierarchy].[Sub Class]
) ON ROWS
FROM [MyCube]
Toute aide très appréciée. MDX me rend fou!
Merci pour la réponse, mais j'ai peur que ce soit faux. Cela produit la même erreur "La hiérarchie Hiérarchie de classes est utilisée plusieurs fois dans la fonction Crossjoin" – Jamiec
Désolé. Cela fonctionne très bien sur mon cube. Revérifiez que vous avez les accolades et les parenthèses dans les bons endroits. Je suis un peu confus que vous parlez d'une fonction de crossjoin mais ce n'est pas dans votre échantillon MDX. Typiquement, il est indiqué par le * entre les dimensions. – jvilalta
Êtes-vous sûr que votre cube a les 2 dimensions sur la même hiérarchie? Je peux également voir aucune différence entre l'utilisation d'un * pour les crossjoins d'une virgule. J'ai vérifié l'ordre des curlies et des parenthèses dans ma requête, même résultat. J'ai essayé de remplacer la virgule par * avec le même résultat. – Jamiec