MDX -Filterung auf Tatsachenebene
Frage
Ich bin ziemlich Neuling bei MDX Sintaxys.
Ich habe die nächste Anforderung, dass ich in der Lage sein muss, es mit MDX zu lösen, falls dies möglich ist. Ich muss die Anzahl der Verkaufstransaktionen zeigen, die den Wert von "X" haben, die Anzahl der Verkaufstransaktionen, die der Betragswert kleiner als "y" ist, die Anzahl der Kredittransaktionen, die den Wert des Stempels größer als "Z" sind. usw. Mein Würfel hat eine Maßnahme namens "Menge" mit einer aggregierten Funktion "Summe" und Transaktionsnummer mit einer Agregat -Funktion "Anzahl" und einer Zeit Dimesion, TransactionType -Dimension und anderen.
Die Sache ist, dass x, y und z Dynamikwerte sind und von Benutzern konfiguriert werden. Ich muss diese Werte lesen, die Abfrage erstellen und es ausführen.
Ich lasse ein Ergebnis als das nächste ein
Greater than > 200 USD less than < 0.10 total
SALE 150 10 300
CREDIT 200 30 600
VODI 10 2 60
Jede Hilfe, die Sie mir zur Verfügung stellen können, ich werde es zu schätzen wissen
Lösung
Dies wäre nur möglich, wenn Sie ein Attribut auf Transaktionsebene hätten, andernfalls werden Ihre Maßnahmen auf ein höheres Niveau vorangetrieben.
Wenn Sie so etwas wie ein [Transaktions -ID] -attribut hatten, können Sie eine Abfrage wie die folgende schreiben.
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>