MDX Filtrado a nivel de hecho
Pregunta
im bastante novato en sintaxys mdx.
Tengo el siguiente requisito de que tengo que ser capaz de resolverlo utilizando MDX, si es posible. Necesito para mostrar el número de operaciones de venta que Amout valor es mayor que "X", el número de transacciones de venta que valor de la cantidad es menor que "Y", el número de transacciones de crédito que Amout valor es mayor que "Z". y así. mi cubo tiene una medida llamada "cantidad" con una función de "suma" agregada y transactionNumber con una función AGREGADO "recuento" y un dimesion tiempo, dimensión transactionType y otros.
lo es, de que X, Y y Z son valores dinámica y configurado por los usuarios, lo que necesito para leer esos valores, construir la consulta y ejecutarlo vía XMLA.
Me estoy esperando un conjunto de resultados como el siguiente
Greater than > 200 USD less than < 0.10 total
SALE 150 10 300
CREDIT 200 30 600
VODI 10 2 60
cualquier ayuda que me puedan dar, i lo apreciará
Solución
Esto sólo sería posible si tuviera un atributo que se encontraba en el nivel de transacción, de lo contrario sus medidas serán pre-agregados a un nivel superior.
Si tenía algo así como un atributo [ID de transacción], se podría escribir una consulta como la siguiente.
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>