Freigeben über


Grundlegende MDX-Abfrage (MDX)

Die grundlegende MDX-Abfrage (Multidimensional Expressions) ist die SELECT-Anweisung– die am häufigsten verwendete Abfrage in MDX. Wenn Sie verstehen, wie eine MDX SELECT-Anweisung ein Resultset angeben muss, was die Syntax der SELECT-Anweisung ist und wie Sie eine einfache Abfrage mithilfe der SELECT-Anweisung erstellen, haben Sie ein solides Verständnis dafür, wie Sie MDX zum Abfragen von mehrdimensionalen Daten verwenden.

Angeben eines Resultsets

In MDX gibt die SELECT-Anweisung ein Resultset an, das eine Teilmenge von mehrdimensionalen Daten enthält, die von einem Cube zurückgegeben wurden. Um ein Resultset anzugeben, muss eine MDX-Abfrage die folgenden Informationen enthalten:

  • Die Anzahl der Achsen, die das Resultset enthalten soll. Sie können bis zu 128 Achsen in einer MDX-Abfrage angeben.

  • Der Satz von Elementen oder Tupeln, die auf jeder Achse der MDX-Abfrage einzuschließen sind.

  • Der Name des Cubes, der den Kontext der MDX-Abfrage festlegt.

  • Der Satz von Elementen oder Tupeln, die auf der Datenschnittachse enthalten sein sollen. Weitere Informationen zu Datenschnitt- und Abfrageachsen finden Sie unterEinschränken der Abfrage mit Abfrage- und Datenschnittachsen (MDX).

Zum Identifizieren der Abfrageachsen, des Cubes, der abgefragt wird, und der Slicer-Achse verwendet die MDX SELECT-Anweisung die folgenden Klauseln.

Hinweis

Ausführlichere Informationen zu den verschiedenen Klauseln der SELECT-Anweisung finden Sie unter SELECT-Anweisung (MDX).For more detailed information about the various clauses of the SELECT statement, see SELECT Statement (MDX).For more detailed information about the various clauses of the SELECT statement, see SELECT Statement (MDX).For more detailed information

SELECT-Anweisungssyntax

Die folgende Syntax zeigt eine einfache SELECT-Anweisung, die die Verwendung der SELECT-, FROM- und WHERE-Klauseln umfasst:

[ 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 MDX SELECT-Anweisung unterstützt optionale Syntaxelemente, wie das WITH-Schlüsselwort, MDX-Funktionen, um berechnete Mitglieder für die Aufnahme in eine Achse oder eine Datenschnittachse zu erstellen, und die Möglichkeit, die Werte bestimmter Zelleigenschaften als Teil der Abfrage zurückzugeben. Weitere Informationen zur MDX SELECT-Anweisung finden Sie unter SELECT-Anweisung (MDX).For more information about the MDX statement, see SELECT Statement (MDX).

Vergleich der Syntax der MDX SELECT-Anweisung mit SQL

Das Syntaxformat für die MDX SELECT-Anweisung ähnelt der sql-Syntax. Es gibt jedoch mehrere grundlegende Unterschiede:

  • MDX-Syntax unterscheidet Sets, indem sie Tupel oder Mitglieder mit geschweiften Klammern (den Zeichen { und }) umgibt. Weitere Informationen zur Syntax von Member, Tupel und Sets finden Sie unter Arbeiten mit Elementen, Tupeln und Sets (MDX).

  • MDX-Abfragen können 0, 1, 2 oder bis zu 128 Abfrageachsen in der SELECT-Anweisung aufweisen. Jede Achse verhält sich genauso, im Gegensatz zu SQL, bei dem es erhebliche Unterschiede zwischen dem Verhalten der Zeilen und Spalten einer Abfrage gibt.

  • Wie bei 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 mithilfe der LookupCube-Funktion auf Wert-nach-Wert-Basis abgerufen werden.

  • Die WHERE-Klausel beschreibt die Datenschnittachse in einer MDX-Abfrage. Sie fungiert als unsichtbare, zusätzliche Achse in der Abfrage und schneidet die Werte, die in den Zellen im Resultset angezeigt werden; im Gegensatz zur SQL WHERE-Klausel hat sie keinen direkten Einfluss darauf, was auf der Zeilenachse der Abfrage angezeigt wird. Die Funktionalität der SQL WHERE-Klausel ist über andere MDX-Funktionen wie die FILTER-Funktion verfügbar.

Beispiel für eine SELECT-Anweisung

Das folgende Beispiel zeigt eine einfache MDX-Abfrage, die die SELECT-Anweisung verwendet. Diese Abfrage gibt eine Ergebnismenge zurück, die die Verkaufs- und Steuerbeträge von 2002 und 2003 für die Verkaufsgebiete im Südwesten 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 definiert die Abfrage die Informationen zu den folgenden Ergebnisdaten.

  • Die SELECT-Klausel legt die Abfrageachsen als die Member "Sales Amount" und "Tax Amount" der Dimension "Measures" sowie die Member "2002" und "2003" der Dimension "Date" fest.

  • Die FROM-Klausel gibt an, dass die Datenquelle der Adventure Works-Cube ist.

  • Die WHERE-Klausel definiert die Slicer-Achse als das Southwest-Element der Dimension Sales Territory.

Beachten Sie, dass im Abfragebeispiel auch die Aliase "SPALTEN" und "ZEILENachse" verwendet werden. Die Ordnungspositionen für diese Achsen hätten ebenfalls verwendet werden können. Das folgende Beispiel zeigt, wie die MDX-Abfrage geschrieben worden sein könnte, um die Ordnungsposition jeder Achse zu verwenden:

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] )  

Ausführlichere Beispiele finden Sie unter Angeben des Inhalts einer Abfrageachse (MDX) und angeben des Inhalts einer Datenschnittachse (MDX).

Siehe auch

Wichtige Konzepte in MDX (Analysis Services)
SELECT-Anweisung (MDX)