2017-01-06 1 views
0

J'ai un cube non conventionnel avec une seule dimension appelée 'RowNumber' et cinq mesures appelées 'Col0', 'Col1', etc. Chaque coordonnée du cube est chargée avec des valeurs de chaîne telles que 'Value14' ou 'Value3'.Comment obtenir uniquement des mesures uniques en utilisant MDX?

Dans chaque mesure, il y aura des répétitions de la même valeur de chaîne, donc si j'exécute

SELECT [Measures].[Col2] ON 0, [RowNumber].[Row10]:[RowNumber].[Row14] ON 1 FROM [myCube] 

-je obtenir ces résultats:

 Col2 
Row10 Value5 
Row11 Value0 
Row12 Value0 
Row13 Value19 
Row14 Value6 

Vous pouvez voir dans le tableau ci-dessus qu'il ya deux entrées Value0. Ce que je veux obtenir est que les valeurs uniques de tous Col2, quelle que soit la RowNumber comme ceci:

Col2 
Value5 
Value0 
Value19 
Value6 

J'apprécie c'est une utilisation non conventionnelle d'un cube, alors peut-être il est impossible. Cependant, obtenir les valeurs uniques d'une mesure ne semble pas être impossible, alors j'espère qu'il y a un moyen de le faire.

Merci d'avance.

+0

Services d'analyse multidimensionnelle ou tabulaire? – GregGalloway

+0

Pouvez-vous changer le cube? Pouvez-vous construire une dimension avec col2? – GregGalloway

+0

Vous devriez certainement changer votre cube et ajouter une dimension pour Col2 comme déjà suggéré par GregGalloway – mxix

Répondre

0

MDX n'est pas vraiment conçu pour ce genre de choses. Mais c'est possible:

With 
Set [OrderedRows] as 
Order(NonEmpty([RowNumber].[Row10]:[RowNumber].[Row14],[Measures].[Col2]),[Measures].[Col2]) 

Member [Measures].[Rank] as 
Rank([RowNumber].[RowNumber].CurrentMember, [OrderedRows]) 

Member [Measures].[Col2Unique] as 
IIF(
    ([OrderedRows].Item([Measures].[Rank] - 2),[Measures].[Col2]) = [Measures].[Col2], 
    NULL, 
    [Measures].[Col2] 
) 

Select {[Measures].[Col2],[Measures].[Col2Unique]} on 0, 
Non Empty [OrderedRows] on 1 
From [myCube]