Filtragem MDX no nível de fato
Pergunta
Sou muito novato no MDX Sintaxys.
Tenho o próximo requisito de que preciso resolvê -lo usando o MDX, se possível. Preciso mostrar o número de transações de venda que o valor de amout é maior que "x", o número de transações de venda cujo valor é menor que "y", o número de transações de crédito que o valor de amout é maior que "z". e assim por diante. Meu cubo possui uma medida chamada "quantidade" com uma função agregada "soma" e o traseiro com uma função agrícola "contagem" e uma índio de tempo, dimensão transactionType e outros.
O problema é que x, y e z são valores de dinâmica e configurados pelos usuários, preciso ler esses valores, criar a consulta e executá -lo vía xmla.
Estou wating um resultado como o próximo
Greater than > 200 USD less than < 0.10 total
SALE 150 10 300
CREDIT 200 30 600
VODI 10 2 60
Qualquer ajuda que você possa me fornecer, eu vou agradecer
Solução
Isso só seria possível se você tivesse um atributo que estava no nível da transação, caso contrário, suas medidas serão pré-agregadas para um nível mais alto.
Se você tinha algo como um atributo [ID da transação], pode escrever uma consulta como a seguinte.
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>