2014-07-08 5 views
1

J'ai une liste de magasins qui me fournissent leurs données de ventes et de transactions. Je veux faire des reportages sur ces magasins en utilisant Mondrian. Disons que je veux remplir l'axe des colonnes avec le nombre de ventes par mois, puis le nombre de transactions par année, où les emplacements de magasins sont répertoriés sur l'axe des lignes. Si j'ajoute simplement la mesure des ventes à l'axe des colonnes, cela s'appliquera aux niveaux Mois et Année. La même chose vaut pour la mesure des transactions. Existe-t-il un moyen d'appliquer la mesure des ventes uniquement au niveau mensuel et la mesure des transactions uniquement au niveau Année?Exclure une mesure d'un niveau dans une hiérarchie (MDX/Mondrian)

Répondre

0

Oui, vous pouvez mettre une union de deux jointures croisées sur les colonnes, e. g.

SELECT { [Measures].[Sales] } * [Date].[Date Hier].[Month].Members 
     + 
     { [Measures].Transactions] } * [Date].[Date Hier].[Year].Members 
     ON COLUMNS, 

     NON EMPTY 
     [Store].[Store location].Members 
     ON ROWS 
    FROM [YourCube] 

Le + est une abréviation pour la fonction Union, comme * est une abréviation pour la fonction CrossJoin. Vous devez faire en sorte que les deux ensembles Union ize aient la même dimension, mais c'est le cas ici.

+0

C'est vraiment génial. Il résout un problème majeur à moi. Offhand, savez-vous si olap4j est capable de cela ou si j'ai besoin d'utiliser mdx directement? J'ai une API qui utilise les opérations de sélection d'inclusion/exclusion de olap4j pour construire mdx, mais cela semble assez limité. – TheBeefMightBeTough

+0

@TheBeefMightBeTough Je n'ai aucune idée, je n'ai jamais utilisé le constructeur de requêtes olap4j. En passant: Si ma réponse a résolu votre question, vous devez la marquer comme la bonne réponse en cliquant sur la coche à côté. – FrankPl

+0

Terminé. Merci encore pour votre aide. – TheBeefMightBeTough

Questions connexes