Ich versuche, eine MDX-Abfrage so zu erstellen, dass es nur die Kombinationen von zwei Dimensionen zurückgibt, in denen ein Maß ein bestimmtes Kriterium erfüllt. Ich dachte, das recht sein würde, gerade nach vorne die FILTER-Funktion, dhMDX - Mehrere Dimensionen filtern
SELECT
NON EMPTY FILTER({[Program].[ByRegion].[Program] * [Performance Metric].[Metric].CHILDREN }, [Measures].[Point Percentage] < .95) ON ROWS,
NON EMPTY (HIERARCHIZE([Calendar Period].[Y-Q-M].[Month of Quarter].&[3]&[1]&[2009]) , [Measures].[Point Percentage])ON COLUMNS
FROM [QEP Revenue]
jedoch nach dem Ausführen der Abfrage, es ist recht einfach zu sehen, dass ich einen Fehler gemacht haben, weil das erste Ergebnis ein Punkt Prozentsatz der 1,5172 hat das ist offensichtlich mehr als .95.
Wenn ich den Filter vollständig entfernen:
SELECT
--NON EMPTY FILTER({[Program].[ByRegion].[Program] * [Performance Metric].[Metric].CHILDREN }, [Measures].[Point Percentage] < .95) ON ROWS,
NON EMPTY ({[Program].[ByRegion].[Program] * [Performance Metric].[Metric].CHILDREN }) ON ROWS,
NON EMPTY (HIERARCHIZE([Calendar Period].[Y-Q-M].[Month of Quarter].&[3]&[1]&[2009]) , [Measures].[Point Percentage])ON COLUMNS
FROM [QEP Revenue]
ich ein ähnliches Ergebnis Satz mit Werten über 0,95. Fehle ich überhaupt den Punkt eines Filters oder gibt es ein Problem mit dem Versuch, zwei Dimensionen auf einmal zu filtern?
Wenn Sie Ihr Beispiel betrachten, sehe ich, dass mein Problem darin bestand, meine Kalenderperiodendimension in den Crossjoin einzubeziehen. Sie haben die Dimension "Time" in die bedingte Anweisung von FILTER verschoben. Mit dieser Technik konnte ich die folgende Abfrage erstellen: SELECT NICHT LEER FILTER ({[Programm]. [ByRegion]. [Programm] * [Leistungsmetrik]. [Metrisch]. CHILDREN}, ([Kalender Zeitraum ]. [YQM]. [Monat des Quartals]. & [3] & [1] & [2009], [Messungen]. [Punktprozentsatz]) <0.95) ON ROWS, NICHT LEER [Kalenderzeitraum]. [YQM ]. [Monat des Quartals]. & [3] & [1] & [2009] ON COLUMNS VON [QEP Revenue] WHERE \t [Maßnahmen]. [Punkt Prozent] – Colin
Ja - ich nehme an, der Punkt ist, dass es muss sowohl im Filter (als Filterbedingung) als auch im Crossjoin (zur Anzeige) enthalten sein. Wenn Sie interessiert sind, hatte ich ein bisschen Hilfe von einem Client-Tool namens XLCubed, das MDX macht. – Ant