Filtraggio MDX a livello fatto
Domanda
im abbastanza newbie a sintaxys mdx.
Ho il requisito successivo che ho bisogno di essere in grado di risolverlo utilizzando mdx, se possibile. Devo visualizza il numero di operazioni di vendita, che trattiene il valore è maggiore di "X", il numero di operazioni di vendita che valore quantità è inferiore a "Y", il numero di operazioni di credito che trattiene valore è superiore a "Z". e così via. il mio cubo ha una misura denominato "importo" con una funzione di "somma" di aggregazione e transactionNumber con una funzione Agregate "count" e una dimesione di tempo, dimensione TransactionType e altri.
la cosa è, che X, Y e Z sono i valori di dinamica e configurata dagli utenti, ho bisogno di leggere quei valori, costruire la query ed eseguirlo tramite XMLA.
Sono wating un gruppo di risultati come quello successivo
Greater than > 200 USD less than < 0.10 total
SALE 150 10 300
CREDIT 200 30 600
VODI 10 2 60
qualsiasi aiuto che potete fornire me, ti apprezzano
Soluzione
Questo sarebbe possibile solo se si ha un attributo che è stato a livello di transazione, altrimenti i vostri misure saranno pre-aggregati ad un livello superiore.
Se si ha avuto qualcosa di simile a un attributo [ID transazione], si potrebbe scrivere una query simile alla seguente.
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>