Grundlegende MDX-Abfrage (MDX)

Die grundlegende MDX-Abfrage (Multidimensional Expressions) besteht aus der SELECT-Anweisung. Dies ist die am häufigsten verwendete Abfrage in MDX. Wenn Sie wissen, wie in einer SELECT-Anweisung von MDX ein Resultset angegeben wird, wie die Syntax der SELECT-Anweisung lautet und wie eine einfache Abfrage mit der SELECT-Anweisung erstellt wird, verfügen Sie über das Basiswissen zum Abfragen multidimensionaler Daten mit MDX.

Angeben eines Resultsets

Die SELECT-Anweisung in MDX gibt ein Resultset an, das aus einer Teilmenge multidimensionaler Daten besteht, die aus einem Cube zurückgegeben wurde. Zum Angeben eines Resultsets muss die MDX-Abfrage die folgenden Informationen enthalten:

  • Die Anzahl der Achsen oder Mengen von Hierarchien. Sie können maximal 128 Achsen in einer MDX-Abfrage angeben.
  • Die Elemente aus jeder Dimension, die auf jeder Achse der MDX-Abfrage eingeschlossen werden sollen.
  • Der Name des Cubes, der den Kontext der MDX-Abfrage festlegt.
  • Die Elemente aus einer Slicerachse, bei denen ein Slice auf den Daten der Elemente aus den Abfrageachsen ausgeführt wird. Weitere Informationen zu Slicer- und Abfrageachsen finden Sie unter Einschränken der Abfrage mit Abfrage- und Slicerachsen (MDX).

Die SELECT-Anweisung von MDX verwendet die folgenden Klauseln zum Identifizieren der Abfrageachsen, des Cubes, der den Kontext für die Abfrage festlegt, und der Slicerachse:

  • Eine SELECT-Klausel, die die Abfrageachsen einer SELECT-Anweisung von MDX bestimmt. Weitere Informationen zur Erstellung von Abfrageachsen in einer SELECT-Klausel finden Sie unter Angeben des Inhalts einer Abfrageachse (MDX).
  • Eine FROM-Klausel, die bestimmt, welche multidimensionale Datenquelle verwendet werden soll, wenn Daten zum Auffüllen des Resultsets der SELECT-Anweisung von MDX extrahiert werden. Weitere Informationen zur FROM-Klausel finden Sie unter SELECT-Anweisung (MDX).
  • Eine WHERE-Klausel, die optional bestimmt, welche Dimension oder welches Element als Slicerachse verwendet wird. Dies schränkt das Extrahieren von Daten auf eine bestimmte Dimension oder ein bestimmtes Element ein. Weitere Informationen zur Erstellung einer Slicerachse in einer WHERE-Klausel finden Sie unter Angeben des Inhalts einer Slicerachse (MDX).
ms144785.note(de-de,SQL.90).gifHinweis:
Weitere Informationen zu den verschiedenen Klauseln der SELECT-Anweisung finden Sie unter SELECT-Anweisung (MDX).

Syntax der SELECT-Anweisung

Die folgende Syntax zeigt eine grundlegende SELECT-Anweisung, in der SELECT-, FROM- und WHERE-Klauseln verwendet werden:

[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ] 
SELECT [ * | ( <SELECT query axis clause> 
    [ , <SELECT query axis clause> ... ] ) ]
FROM <SELECT subcube clause> 
[ <SELECT slicer axis clause> ]
[ <SELECT cell property list clause> ]

Die SELECT-Anweisung von MDX unterstützt optionale Syntax, wie z. B. das WITH-Schlüsselwort und die Berechnung von Elementen mithilfe von MDX-Funktionen, um die Elemente in eine Achse oder Slicerachse einzuschließen. Außerdem bietet sie die Möglichkeit, die Werte bestimmter Zelleneigenschaften im Rahmen der Abfrage zurückzugeben. Weitere Informationen zur SELECT-Anweisung von MDX finden Sie unter SELECT-Anweisung (MDX).

Vergleich der Syntax der SELECT-Anweisung von MDX mit SQL

Das Syntaxformat der SELECT-Anweisung von MDX gleicht dem Format der SQL-Syntax. Es gibt jedoch einige deutliche Unterschiede:

  • Die MDX-Syntax gibt Mengen an, indem Tupel oder Elemente in geschweifte Klammern (die Zeichen { und }) eingeschlossen werden. Weitere Informationen zur Syntax von Elementen, Tupeln und Mengen finden Sie unter Verwenden von Elementen, Tupeln und Mengen (MDX).
  • MDX-Abfragen können maximal 128 Abfrageachsen in der SELECT-Anweisung enthalten, doch nur die ersten 5 Achsen verfügen über Aliasnamen. Sie können auf eine Achse über ihre Ordnungsposition in einer MDX-Abfrage verweisen oder ggf. über den Alias der Achse. Wie in einer SQL-Abfrage benennt die FROM-Klausel die Quelle der Daten für die MDX-Abfrage. Die MDX-FROM-Klausel ist jedoch auf einen einzelnen Cube beschränkt. Informationen aus anderen Cubes können Wert für Wert mithilfe der LookupCube-Funktion abgerufen werden.
  • Die WHERE-Klausel beschreibt die Slicerachse. Wird in der WHERE-Klausel keine Hierarchie erwähnt, geht Microsoft SQL Server 2005 Analysis Services (SSAS) davon aus, dass jede nicht explizit in eine Abfrageachse eingeschlossene Hierarchie implizit in die Slicerachse eingeschlossen wird, und die Hierarchie wird nach ihren Standardelementen gefiltert. Die WHERE-Klausel kann den Filtervorgang für die angegebene Hierarchie verändern und ermöglicht so eine genaue Steuerung der eingeschlossenen Daten.

Beispiel für die SELECT-Anweisung

Das folgende Beispiel zeigt eine grundlegende MDX-Abfrage mit der SELECT-Anweisung. Die Abfrage gibt ein Resultset zurück, das die Umsatz- und Steuerbeträge für 2002 und 2003 in den südwestlichen Vertriebsregionen enthält.

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

In diesem Beispiel werden durch die Abfrage die folgenden Resultset-Informationen definiert:

  • Die SELECT-Klausel legt die Abfrageachsen auf die Elemente Sales Amount (Umsatz) und Tax Amount (Steuern) der Measures-Dimension sowie auf die Elemente 2002 und 2003 der Date-Dimension fest.
  • Die FROM-Klausel zeigt an, dass die Datenquelle im Adventure Works-Cube besteht.
  • Die WHERE-Klausel definiert das Southwest-Element der Sales Territory-Dimension zur Slicerachse.

Beachten Sie, dass das Abfragebeispiel auch die Achsenaliase COLUMNS und ROWS verwendet. Ebenso können die Ordnungspositionen für diese Achsen verwendet werden. Das folgende Beispiel zeigt, wie die MDX-Abfrage mithilfe der Ordnungsposition jeder Achse geschrieben werden könnte:

SELECT
    { [Measures].[Sales Amount], 
        [Measures].[Tax Amount] } ON 0,
    { [Date].[Fiscal].[Fiscal Year].&[2002], 
        [Date].[Fiscal].[Fiscal Year].&[2003] } ON 1
FROM [Adventure Works]
WHERE ( [Sales Territory].[Southwest] )
ms144785.note(de-de,SQL.90).gifWichtig:
Normalerweise werden Mengen im wesentlich größeren Cubekontext ausgewertet. Das EXISTING-Schlüsselwort (MDX) erzwingt jedoch die Auswertung von Mengen im aktuellen Kontext.

Siehe auch

Verweis

SELECT-Anweisung (MDX)

Konzepte

Schlüsselkonzepte in MDX (MDX)

Hilfe und Informationen

Informationsquellen für SQL Server 2005