DAX-AbfragenDAX queries

Mit DAX-Abfragen können Sie Daten abfragen und zurückgeben, die von einem Tabellenausdruck definiert werden.With DAX queries, you can query and return data defined by a table expression. Berichterstellungsclients erstellen DAX-Abfragen, wenn ein Feld auf einer Berichtsoberfläche platziert wird, oder wenn ein Filter oder eine Berechnung angewendet wird.Reporting clients construct DAX queries whenever a field is placed on a report surface, or a whenever a filter or calculation is applied. DAX-Abfragen können auch in SQL Server Management Studio (SSMS) und Open-Source-Tools wie DAX Studio erstellt und ausgeführt werden.DAX queries can also be created and run in SQL Server Management Studio (SSMS) and open-source tools like DAX Studio. DAX-Abfragen, die in SSMS und in DAX Studio ausgeführt werden, geben Ergebnisse als Tabelle zurück.DAX queries run in SSMS and DAX Studio return results as a table.

Bevor Sie sich näher mit Abfragen beschäftigen, sollten Sie über ein solides Verständnis der DAX-Grundlagen verfügen.Before learning about queries, it's important you have a solid understanding of DAX basics. Sofern nicht bereits geschehen, lesen Sie die DAX-Übersicht.If you haven't already, be sure to checkout DAX overview.

SyntaxSyntax

[DEFINE {  MEASURE <tableName>[<name>] = <expression> } 
        {  VAR <name> = <expression>}]
EVALUATE <table>  
[ORDER BY {<expression> [{ASC | DESC}]}[, …]  
[START AT {<value>|<parameter>} [, …]]]  

SchlüsselwörterKeywords

EVALUATE (erforderlich)EVALUATE (Required)

Auf der grundlegendsten Ebene ist eine DAX-Abfrage eine EVALUATE-Anweisung mit einem Tabellenausdruck.At the most basic level, a DAX query is an EVALUATE statement containing a table expression. Eine Abfrage kann jedoch mehrere EVALUATE-Anweisungen enthalten.However, a query can contain multiple EVALUATE statements.

SyntaxSyntax

EVALUATE <table>  

ArgumenteArguments

BegriffTerm DefinitionDefinition
Tabelletable Ein Tabellenausdruck.A table expression.

BeispielExample

EVALUATE(
    'Internet Sales'
    )

Gibt alle Zeilen und Spalten aus der Internet Sales-Tabelle als Tabelle zurück.Returns all rows and columns from the Internet Sales table, as a table.

EVALUATE-Anweisung in DAX

ORDER BY (optional)ORDER BY (Optional)

Das optionale Schlüsselwort ORDER BY definiert mindestens einen Ausdruck zum Sortieren von Abfrageergebnissen.The optional ORDER BY keyword defines one or more expressions used to sort query results. Ein Ausdruck, der für jede Zeile des Ergebnisses ausgewertet werden kann.Any expression that can be evaluated for each row of the result is valid.

SyntaxSyntax

EVALUATE <table>  
[ORDER BY {<expression> [{ASC | DESC}]}[, …]  

ArgumenteArguments

BegriffTerm DefinitionDefinition
expressionexpression Ein DAX-Ausdruck, der einen einzelnen Skalarwert zurückgibt.Any DAX expression that returns a single scalar value.
ASCASC (Standard) Aufsteigende Sortierreihenfolge.(default) Ascending sort order.
DESCDESC Absteigende Sortierreihenfolge.Descending sort order.

BeispielExample

EVALUATE(
    'Internet Sales'
    )
ORDER BY
    'Internet Sales'[Order Date]

Gibt alle Zeilen und Spalten aus der Internet Sales-Tabelle als Tabelle zurück, die nach „Order Date“ sortiert ist.Returns all rows and columns from the Internet Sales table, ordered by Order Date, as a table.

EVALUATE-ORDER BY-Anweisung in DAX

START AT (optional)START AT (Optional)

Das optionale Schlüsselwort START AT wird innerhalb einer ORDER BY-Klausel verwendet.The optional START AT keyword is used inside an ORDER BY clause. Es definiert den Wert, bei dem die Abfrageergebnisse anfangen.It defines the value at which the query results begin.

SyntaxSyntax

EVALUATE <table>  
[ORDER BY {<expression> [{ASC | DESC}]}[, …]  
[START AT {<value>|<parameter>} [, …]]]  

ArgumenteArguments

BegriffTerm DefinitionDefinition
Wertvalue Ein konstanter Wert.A constant value. Es kann sich nicht um einen Ausdruck handeln.Cannot be an expression.
parameterparameter Der Name eines Parameters in einer XMLA-Anweisung, dem ein @-Zeichen vorangestellt ist.The name of a parameter in an XMLA statement prefixed with an @ character.

START AT-Argumente weisen eine Eins-zu-Eins-Entsprechung mit den Spalten in der ORDER BY-Klausel auf.START AT arguments have a one-to-one correspondence with the columns in the ORDER BY clause. Es kann so viele Argumente in der START AT-Klausel geben wie in der ORDER BY-Klausel, aber nicht mehr.There can be as many arguments in the START AT clause as there are in the ORDER BY clause, but not more. Das erste Argument in der START AT-Klausel definiert den Startwert in Spalte 1 der ORDER BY-Spalten.The first argument in the START AT defines the starting value in column 1 of the ORDER BY columns. Das zweite Argument in der START AT-Klausel definiert den Startwert in Spalte 2 der ORDER BY-Spalten innerhalb der Zeilen, die dem ersten Wert für Spalte 1 entsprechen.The second argument in the START AT defines the starting value in column 2 of the ORDER BY columns within the rows that meet the first value for column 1.

BeispielExample

EVALUATE(
    'Internet Sales'
    )
ORDER BY
    'Internet Sales'[Sales Order Number]
START AT "SO7000"

Gibt alle Zeilen und Spalten aus der Internet Sales-Tabelle zurück, sortiert nach „Sales Order Number“, beginnend bei SO7000.Returns all rows and columns from the Internet Sales table, ordered by Sales Order Number, beginning at SO7000.

EVALUATE-ORDER BY-Anweisung in DAX

Mehrere EVALUATE/ORDER BY/START AT-Klauseln können als einzelne Abfrage angegeben werden.Multiple EVALUATE/ORDER BY/START AT clauses can be specified in a single query.

DEFINE (optional)DEFINE (Optional)

Das optionale Schlüsselwort DEFINE definiert Entitäten, die nur für die Dauer der Abfrage vorhanden sind.The optional DEFINE keyword defines entities that exist only for the duration of the query. Definitionen sind für alle EVALUATE-Anweisungen gültig.Definitions are valid for all EVALUATE statements. Entitäten können Variablen, Kennzahlen, Tabellen und Spalten sein.Entities can be variables, measures, tables, and columns. Definitionen können auf andere Definitionen verweisen, die vor oder nach der aktuellen Definition angezeigt werden.Definitions can reference other definitions that appear before or after the current definition. Definitionen werden in der Regel der EVALUATE-Anweisung vorangestellt.Definitions typically precede the EVALUATE statement.

SyntaxSyntax

[DEFINE {  MEASURE <tableName>[<name>] = <expression> } 
        {  VAR <name> = <expression>}]
EVALUATE <table>  

ArgumenteArguments

BegriffTerm DefinitionDefinition
tableNametableName Der Name einer vorhandenen Tabelle mit DAX-Standardsyntax.The name of an existing table using standard DAX syntax. Es kann sich nicht um einen Ausdruck handeln.It cannot be an expression.
namename Der Name eines neuen Measures.The name of a new measure. Es kann sich nicht um einen Ausdruck handeln.It cannot be an expression.
expressionexpression Ein DAX-Ausdruck, der einen einzelnen Skalarwert zurückgibt.Any DAX expression that returns a single scalar value. Der Ausdruck kann ein beliebiges der definierten Measures verwenden.The expression can use any of the defined measures. Der Ausdruck muss eine Tabelle zurückgeben.The expression must return a table. Wenn ein Skalarwert erforderlich ist, schließen Sie den Skalar in eine ROW()-Funktion ein, um eine Tabelle zu erstellen.If a scalar value is required, wrap the scalar inside a ROW() function to produce a table.
VARVAR Ein optionaler Ausdruck als benannte Variable.An optional expression as a named variable. Ein VAR-Ausdruck kann als Argument an andere Ausdrücke übermittelt werden.A VAR can be passed as an argument to other expressions.

BeispielExample

DEFINE
MEASURE 'Internet Sales'[Internet Total Sales] = SUM('Internet Sales'[Sales Amount])
EVALUATE
SUMMARIZECOLUMNS
(
    'Date'[Calendar Year],
    TREATAS({2013, 2014}, 'Date'[Calendar Year]),
    "Total Sales", [Internet Total Sales],
    "Combined Years Total Sales", CALCULATE([Internet Total Sales], ALLSELECTED('Date'[Calendar Year]))
)
ORDER BY [Calendar Year]

Gibt den berechneten Gesamtumsatz für die Jahre 2013 und 2014 und den kombinierten berechneten Gesamtumsatz für die Jahre 2013 und 2014 als Tabelle zurück.Returns the calculated total sales for years 2013 and 2014, and combined calculated total sales for years 2013 and 2014, as a table. Das Measure in der DEFINE-Anweisung, Internet Total Sales, wird sowohl in den Ausdrücken „Total Sales“ als auch „Combined Years Total Sales“ verwendet.The measure in the DEFINE statement, Internet Total Sales, is used in both Total Sales and Combined Years Total Sales expressions.

EVALUATE-Anweisung mit Measuredefinition in DAX

Parameter in DAX-AbfragenParameters in DAX queries

Eine klar definierte DAX-Abfrageanweisung kann parametrisiert und dann immer wieder verwendet werden, wobei lediglich die Parameterwerte geändert werden.A well-defined DAX query statement can be parameterized and then used over and over with just changes in the parameter values.

Die Execute (XMLA)-Methode verfügt über eine Parameters Element (XMLA)-Sammlung, die es ermöglicht, Parameter zu definieren und einem Wert zuzuweisen.The Execute Method (XMLA) method has a Parameters Element (XMLA) collection element that allows parameters to be defined and assigned a value. Innerhalb der Sammlung definiert jedes Parameter Element (XMLA)-Element den Namen des Parameters und einen zugehörigen Wert.Within the collection, each Parameter Element (XMLA) element defines the name of the parameter and a value to it.

Verweisen Sie auf XMLA-Parameter, indem Sie dem Namen des Parameters ein @-Zeichen voranstellen.Reference XMLA parameters by prefixing the name of the parameter with an @ character. An jeder Stelle in der Syntax, wo ein Wert zulässig ist, kann der Wert durch einen Parameteraufruf ersetzt werden.Any place in the syntax where a value is allowed, the value can be replaced with a parameter call. Alle XMLA-Parameter werden als Text eingegeben.All XMLA parameters are typed as text.

Wichtig

Parameter, die im Abschnitt für Parameter definiert und im Element <STATEMENT> nicht verwendet werden, führen zu einer Fehlerantwort in XMLA.Parameters defined in the parameters section and not used in the <STATEMENT> element generate an error response in XMLA. Parameter, die im Element <Parameter> verwendet und nicht definiert werden, führen zu einer Fehlerantwort in XMLA.Parameters used and not defined in the <Parameters> element generate an error response in XMLA.

Siehe auchSee also

FILTERFILTER
SUMMARIZECOLUMNSSUMMARIZECOLUMNS
TREATASTREATAS
VARVAR