MDX-Abfrage – grundlegende AbfrageMDX Query - The Basic Query

GILT FÜR: JaSQL Server Analysis Services NeinAzure Analysis Services NeinPower BI PremiumAPPLIES TO: yesSQL Server Analysis Services noAzure Analysis Services noPower BI Premium

Die grundlegende MDX (Multidimensional Expressions)-Abfrage ist die SELECT-Anweisung die am häufigsten verwendete Abfrage in MDX.The basic Multidimensional Expressions (MDX) query is the SELECT statement-the most frequently used query 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 mehrdimensionaler Daten mit MDX.By understanding how an MDX SELECT statement must specify a result set, what the syntax of the SELECT statement is, and how to create a simple query using the SELECT statement, you will have a solid understanding of how to use MDX to query multidimensional data.

Angeben eines ResultsetsSpecifying a Result Set

Die SELECT-Anweisung in MDX gibt ein Resultset an, das aus einer Teilmenge mehrdimensionaler Daten besteht, die aus einem Cube zurückgegeben wurde.In MDX, the SELECT statement specifies a result set that contains a subset of multidimensional data that has been returned from a cube. Zum Angeben eines Resultsets muss die MDX-Abfrage die folgenden Informationen enthalten:To specify a result set, an MDX query must contain the following information:

  • Die Anzahl der Achsen, die das Resultset enthalten soll.The number of axes that you want the result set to contain. Sie können maximal 128 Achsen in einer MDX-Abfrage angeben.You can specify up to 128 axes in an MDX query.

  • Die Menge von Elementen oder Tupeln, die auf jeder Achse der MDX-Abfrage enthalten sein soll.The set of members or tuples to include on each axis of the MDX query.

  • Der Name des Cubes, der den Kontext der MDX-Abfrage festlegt.The name of the cube that sets the context of the MDX query.

  • Die Menge von Elementen oder Tupeln, die auf der Slicer-Achse enthalten sein soll.The set of members or tuples to include on the slicer axis. Weitere Informationen zu Slicer- und Abfrageachsen finden Sie unter Einschränken der Abfrage mit Abfrage- und Slicerachsen (MDX).For more information about slicer and query axes, seeRestricting the Query with Query and Slicer Axes (MDX).

Die SELECT-Anweisung von MDX verwendet die folgenden Klauseln zum Identifizieren der Abfrage-Achsen, des abgefragten Cubes und der Slicer-Achse:To identify the query axes, the cube that will be queried, and the slicer axis, the MDX SELECT statement uses the following clauses:

  • Eine SELECT-Klausel, die die Abfrage-Achsen einer SELECT-Anweisung von MDX bestimmt.A SELECT clause that determines the query axes of an MDX SELECT statement. Weitere Informationen zur Erstellung von Abfrageachsen in einer SELECT-Klausel finden Sie unter Angeben des Inhalts einer Abfrageachse (MDX).For more information about the construction of query axes in a SELECT clause, see Specifying the Contents of a Query Axis (MDX).

  • Eine FROM-Klausel, mit der festgelegt wird, welcher Cube abgefragt wird.A FROM clause that determines which cube will be queried. Weitere Informationen zur FROM-Klausel in der SELECT-Anweisung von MDX finden Sie unter SELECT-Anweisung (MDX).For more information about the FROM clause, see SELECT Statement (MDX).

  • Eine optionale WHERE-Klausel, mit der festgelegt wird, welche Elemente oder Tupeln auf der Slicer-Achse verwendet werden sollen, um die zurückgegebenen Daten einzuschränken.An optional WHERE clause that determines which members or tuples to use on the slicer axis to restrict the data returned. Weitere Informationen zur Erstellung einer Abfrageachse in einer WHERE-Klausel finden Sie unter Angeben des Inhalts einer Slicerachse (MDX).For more information about the construction of a slicer axis in a WHERE clause, see Specifying the Contents of a Slicer Axis (MDX).

Hinweis

Weitere 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).

Syntax der SELECT-AnweisungSELECT Statement Syntax

Die folgende Syntax zeigt eine grundlegende SELECT-Anweisung, in der SELECT-, FROM- und WHERE-Klauseln verwendet werden:The following syntax shows a basic SELECT statement that includes the use of the SELECT, FROM, and WHERE clauses:

[ 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 Erstellung von berechneten Elementen mithilfe von MDX-Funktionen, um die Elemente in eine Achse oder Slicer-Achse einzuschließen. Außerdem bietet sie die Möglichkeit, die Werte bestimmter Zelleneigenschaften im Rahmen der Abfrage zurückzugeben.The MDX SELECT statement supports optional syntax, such as the WITH keyword, the use of MDX functions to create calculated members for inclusion in an axis or slicer axis, and the ability to return the values of specific cell properties as part of the query. Weitere Informationen zur SELECT-Anweisung von MDX finden Sie unter SELECT-Anweisung (MDX).For more information about the MDX SELECT statement, see SELECT Statement (MDX).

Vergleich der Syntax der SELECT-Anweisung von MDX mit SQLComparing the Syntax of the MDX SELECT Statement to SQL

Das Syntaxformat der SELECT-Anweisung von MDX gleicht dem Format der SQL-Syntax.The syntax format for the MDX SELECT statement is similar to that of SQL syntax. Es gibt jedoch einige deutliche Unterschiede:However, there are several fundamental differences:

  • 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 syntax distinguishes sets by surrounding tuples or members with braces (the { and } characters.) For more information about member, tuple, and set syntax, see Working with Members, Tuples, and Sets (MDX).

  • MDX-Abfragen können 0, 1, 2 oder bis zu 128 Abfrage-Achsen in der SELECT-Anweisung enthalten.MDX queries can have 0, 1, 2 or up to 128 query axes in the SELECT statement. Jede Achse verhält sich auf exakt die gleiche Weise, im Gegensatz zu SQL, wo es deutliche Unterschiede zwischen den Verhaltensweisen der Zeilen und Spalten einer Abfrage gibt.Each axis behaves in exactly the same way, unlike SQL where there are significant differences between how the rows and the columns of a query behave.

  • Wie in einer SQL-Abfrage benennt die FROM-Klausel die Quelle der Daten für die MDX-Abfrage.As with an SQL query, the FROM clause names the source of the data for the MDX query. Die MDX-FROM-Klausel ist jedoch auf einen einzelnen Cube beschränkt.However, the MDX FROM clause is restricted to a single cube. Informationen aus anderen Cubes können Wert für Wert mithilfe der LookupCube-Funktion abgerufen werden.Information from other cubes can be retrieved on a value-by-value basis by using the LookupCube function.

  • Die WHERE-Klausel beschreibt die Slicer-Achse in einer MDX-Abfrage.The WHERE clause describes the slicer axis in an MDX query. Sie verhält sich in etwa wie eine unsichtbare weitere Achse in der Abfrage, die die Werte, die in den Zellen im Resultset angezeigt werden, in Slices aufteilt. Im Gegensatz zur SQL-Klausel WHERE nimmt sie keinen direkten Einfluss darauf, was auf der ROWS-Achse der Abfrage angezeigt wird.It acts as something like an invisible, extra axis in the query, slicing the values that appear in the cells in the result set; unlike the SQL WHERE clause it does not directly affect what appears on the rows axis of the query. Die Funktionalität der SQL-Klausel WHERE steht durch andere MDX-Funktionen zur Verfügung, wie z. B. die FILTER-Funktion.The functionality of the SQL WHERE clause is available through other MDX functions such as the FILTER function.

Beispiel für die SELECT-AnweisungSELECT Statement Example

Das folgende Beispiel zeigt eine grundlegende MDX-Abfrage mit der SELECT-Anweisung.The following example shows a basic MDX query that uses the SELECT statement. 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.This query returns a result set that contains the 2002 and 2003 sales and tax amounts for the Southwest sales territories.

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:In this example, the query defines the following result set information:

  • Die SELECT-Klausel legt die Abfrage-Achsen auf die Elemente Sales Amount (Umsatz) und Tax Amount (Steuern) der Measures-Dimension sowie auf die Elemente 2002 und 2003 der Date-Dimension fest.The SELECT clause sets the query axes as the Sales Amount and Tax Amount members of the Measures dimension, and the 2002 and 2003 members of the Date dimension.

  • Die FROM-Klausel zeigt an, dass die Datenquelle im Adventure Works-Cube besteht.The FROM clause indicates that the data source is the Adventure Works cube.

  • Die WHERE-Klausel definiert das Southwest-Element der Sales Territory-Dimension zur Slicer-Achse.The WHERE clause defines the slicer axis as the Southwest member of the Sales Territory dimension.

Beachten Sie, dass das Abfragebeispiel auch die Achsenaliase COLUMNS und ROWS verwendet.Notice that the query example also uses the COLUMNS and ROWS axis aliases. Ebenso können die Ordnungspositionen für diese Achsen verwendet werden.The ordinal positions for these axes could also have been used. Das folgende Beispiel zeigt, wie die MDX-Abfrage mithilfe der Ordnungsposition jeder Achse geschrieben werden könnte:The following example shows how the MDX query could have been written to use the ordinal position of each axis:

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 Slicerachse (MDX).For more detailed examples, see Specifying the Contents of a Query Axis (MDX)and Specifying the Contents of a Slicer Axis (MDX).

Siehe auchSee Also

Schlüsselkonzepte in MDX (Analysis Services) Key Concepts in MDX (Analysis Services)
SELECT-Anweisung (MDX)SELECT Statement (MDX)