Question

Les structures pertinentes de mon cube sont que j'ai une hiérarchie avec « classe » et « SubClass ». J'ai aussi une mesure appelée « valeur », qui est ce que im essayant d'obtenir.

Une simple requête 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.

Ma question est double, d'une part comment pourrais-je « aplatir » cette hiérarchie de manière à recevoir à la fois et la classe SubClass en tant que membres discrets dans l'ensemble de cellules? 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

Deuxième question, ce que je dois faire est actuually filtrer ci-dessus sur les classes particulières, encore une fois cela ne marchera 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 dingue!

Était-ce utile?

La solution

Il vous manque la propriété MEMBRES sur votre dimension.

Pour votre premier exemple, essayez ceci:

SELECT 
    NON EMPTY ([Measures].[Value]) ON COLUMNS,
    NON EMPTY {(
            [Some Dimension].[Class Hierarchy].[Class].MEMBERS,
            [Some Dimension].[Class Hierarchy].[Sub Class].MEMBERS)} ON ROWS
FROM [MyCube]

Pour votre deuxième exemple, essayez ceci:

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].MEMBERS)} ON ROWS
FROM [MyCube]

Autres conseils

Utilisez dans votre sous-requêtes clause WHERE. MDX toujours limiter l'utilisation d'une dimension sur un seul axe.

Sous la requête est un moyen de contourner le problème. J'ai récemment appris cette astuce après MDX m'a conduit noix et ..

Salut cette requête a fonctionné pour moi.

 SELECT NON EMPTY { [Measures].[App Count] }
 ON COLUMNS, 
 NON EMPTY 
 {(
 EXISTING 
 (
 [MART TIME DIM].[Date].[Date] .MEMBERS) * 
 [New Ren DIM].[New Ren CODE].[New Ren CODE].ALLMEMBERS
 )}
 ON ROWS FROM [SubmissionCube]  
 where
({
[MART BROKER DIM].[BROKER ID].&[10812]},{[MART TIME DIM].[Year].&[2015],
{[MARTTIME DIM].[Year].&[2016]}
})  

S'il vous plaît être prudent avec le « } » dans la clause where que la requête a.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top