MDX filtrage au niveau de fait
Question
im pretty débutant à sintaxys mdx.
J'ai la prochaine exigence que je dois être en mesure de le résoudre en utilisant mdx, si son possible. Je dois montrer le nombre de transactions de vente qui amout valeur est supérieure à « X », le nombre de transactions de vente dont la valeur de quantité est inférieure à « Y », le nombre de transactions de crédit qui amout valeur est supérieure à « Z ». etc. mon cube a une mesure appelée « montant » avec une fonction d'agrégation « somme » et TransactionNumber avec une fonction agrégat « count » et un dimesion temps, dimension TransactionType et d'autres.
la chose est que X, Y et Z sont dynamiques et valeurs configurées par les utilisateurs, je dois lire ces valeurs, construire la requête et l'exécuter vía XMLA.
Je suis wating un comme l'autre resultset un
Greater than > 200 USD less than < 0.10 total
SALE 150 10 300
CREDIT 200 30 600
VODI 10 2 60
toute aide que vous pouvez me fournir, je vais l'apprécier
La solution
Ce serait possible que si vous aviez un attribut qui était au niveau de la transaction, sinon vos mesures seront pré-agrégées à un niveau supérieur.
Si vous avez eu quelque chose comme un attribut [ID transaction], vous pouvez écrire une requête comme suit.
WITH
MEMBER Measures.[Greater than 200 USD] as
SUM(Filter([Transaction ID].[Transaction ID].[Transaction ID], Measures.Amount > 200)
, Measures.Count)
MEMBER Measures.[Less than 0.10 USD] as
SUM(Filter([Transaction ID].[Transaction ID].[Transaction ID], Measures.Amount > 200)
, Measures.Count)
MEMBER Measures.Total as Measures.Count
SELECT
{Measures.[Greater than 200 USD]
,Measures.[Less than 0.10 USD]
,Measures.[Total]} ON columns
, [Transaction Type].[Transaction Type].[Transaction Type] ON Rows
FROM <Cube>