🏠 » Business Intelligence » MDX Tutorial » MDX Achseneinteilung

MDX Achseneinteilung

Die Achseneinteilung in MDX ist mit festgelegten Synonymen, wie zum Beispiel ON ROWS oder ON COLUMNS, vordefiniert. Theoretisch können mit MDX bis zu 128 Achsen eingeteilt und definiert werden.

Die Einteilung der Achsenelemente geschieht mit dem Ausdruck ON AXIS(n). Natürlich können auch Achsen, für die Synonyme hinterlegt sind, mit ON AXIS(n) angesprochen werden.

Eine Vermischung der Achsenbezeichnungen in MDX ist auch möglich. Wichtig dabei ist, dass Abfrageachsen nicht übersprungen werden dürfen.

Kleines Beispiel: Eine MDX-Abfrage, welche die Achsennummerierung ON AXIS(1) benutzt, muss auch
eine entsprechende Achse ON AXIS(0) bzw. das Alias ON COLUMNS benutzen.

Auch eine SELECT-Klausel ohne Achseneinteilung, das heißt ein leerer SELECT-Ausdruck,
ist zulässig. In diesem Fall erfolgt ein Slicing in allen Dimensionen und die MDX-Abfrage wählt eine Zelle aus.

Achseneinteilungen in MDX-Abfragen definieren

Bei der Achseneinteilung in MDX Abfragen sollte noch erwähnt werden, dass MDX nicht case-sensitiv ist. Auch das Layout einer MDX-Abfrage spielt keine Rolle. Eine MDX-Abfrage ist standardmäßig folgendermaßen aufgebaut:

SELECT '<Achsenspezifikation>' ON COLUMNS,
       '<Achsenspezifikation>' ON ROWS
FROM '<Cube>'
WHERE '<Slicing-Spezifikation>'

Mittels der SELECT-Anweisung werden die Achsendimensionen beschrieben. Diese beschreibt den Ergebnisraum, wobei jeder Dimension eine Rolle in Spalten (ON ROWS), Zeilen (ON COLUMNS) oder weiteren Achsen zugewiesen wird. Durch die FROM–Anweisung wird der OLAP Cube bekannt gegeben, aus welchem die Daten stammen bzw. zu finden sind. Mittels der WHERE–Anweisung findet in MDX echtes Slicing statt. Das Slicing ist mit dem SQL WHERE Befehl vergleichbar.

MDX Achseneinteilung Beispiel

Eine MDX-Abfrage mit definierter numerischer Achseneinteilung ist folgendermaßen aufgebaut:

SELECT {[Measures].[Sales Amount], [Measures].[Tax Amount]} ON AXIS (0),
       {[Date].[Fiscal].[Fiscal Year].&[2007], 
        [Date].[Fiscal].[Fiscal Year].&[2008]} ON AXIS (1),
FROM [Adventure Works]
WHERE ([Sales Territory].[Southwest]);

Eine MDX-Abfrage mit definierter Achseneinteilung mittels Synonyme ist folgendermaßen aufgebaut:

SELECT {[Measures].[Sales Amount], [Measures].[Tax Amount]} ON COLUMNS,
       {[Date].[Fiscal].[Fiscal Year].&[2007], 
        [Date].[Fiscal].[Fiscal Year].&[2008]} ON COLUMNS,
FROM [Adventure Works]
WHERE ([Sales Territory].[Southwest]);

Weiterführende Artikel