Hol dir alle Informationen über DAX-Abfragen!

Hol dir alle Informationen über DAX-Abfragen!

DAX-Abfragen sind ein wichtiges Instrument für Power BI und Excel, wenn es darum geht, Berichte zu erstellen oder Filter anzuwenden. Mit Tools wie SQL Server Management Studio (SSMS), Power BI Report Builder und DAX Studio kannst du deine eigenen DAX-Abfragen erstellen und ausführen. DAX-Abfragen liefern die Ergebnisse als Tabelle direkt im Tool, sodass du die Leistung deiner DAX-Formeln schnell testen kannst.

Bevor du dich jedoch mit den Abfragen beschäftigst, ist es wichtig, dass du die Grundlagen von DAX verstehst. Falls du das noch nicht getan hast, schau dir unbedingt die DAX-Übersicht an.

Schlüsselwörter

DAX-Abfragen haben eine einfache Syntax, die aus einem Pflichtschlüsselwort (EVALUATE) und mehreren optionalen Schlüsselwörtern besteht: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE und COLUMN. Jedes Schlüsselwort definiert eine Anweisung, die für die Dauer der Abfrage verwendet wird.

EVALUATE (Pflicht)

Auf der grundlegendsten Ebene ist eine DAX-Abfrage eine EVALUATE-Anweisung, die einen Tabellenausdruck enthält. Mindestens eine EVALUATE-Anweisung ist erforderlich, eine Abfrage kann jedoch beliebig viele EVALUATE-Anweisungen enthalten.

EVALUATE Syntax

EVALUATE <tabelle>

EVALUATE-Parameter

Begriff Definition
Tabelle Ein Tabellenausdruck.

EVALUATE-Beispiel

EVALUATE ‘Internet Sales’

Liefert alle Zeilen und Spalten aus der Tabelle “Internet Sales” als Tabelle zurück.

ORDER BY (Optional)

Das optionale Schlüsselwort ORDER BY definiert eine oder mehrere Ausdrücke, nach denen die Abfrageergebnisse sortiert werden. Jeder Ausdruck, der für jede Zeile des Ergebnisses ausgewertet werden kann, ist gültig.

LESEN  Eventim Gutschein

ORDER BY Syntax

EVALUATE <tabelle> [ORDER BY {<ausdruck> [{ASC | DESC}]}[, …]]

ORDER BY-Parameter

Begriff Definition
Ausdruck Ein beliebiger DAX-Ausdruck, der einen einzelnen Skalarwert zurückgibt.
ASC (Standard) Aufsteigende Sortierreihenfolge.
DESC Absteigende Sortierreihenfolge.

ORDER BY-Beispiel

EVALUATE ‘Internet Sales’ ORDER BY ‘Internet Sales'[Bestelldatum]

Liefert alle Zeilen und Spalten aus der Tabelle “Internet Sales” in aufsteigender Reihenfolge nach Bestelldatum als Tabelle zurück.

START AT (Optional)

Das optionale Schlüsselwort START AT wird innerhalb einer ORDER BY-Klausel verwendet. Es definiert den Wert, an dem die Abfrageergebnisse beginnen.

START AT Syntax

EVALUATE <tabelle> [ORDER BY {<ausdruck> [{ASC | DESC}]}[, …] [START AT {<wert>|<parameter>} [, …]]]

START AT-Parameter

Begriff Definition
Wert Ein konstanter Wert. Darf kein Ausdruck sein.
Parameter Der Name eines Parameters in einer XMLA-Anweisung, der mit einem @-Zeichen versehen ist.

START AT-Bemerkungen

START AT-Argumente haben eine Eins-zu-Eins-Korrespondenz mit den Spalten in der ORDER BY-Klausel. Es können so viele Argumente in der START AT-Klausel sein, wie in der ORDER BY-Klausel vorhanden sind. Das erste Argument in START AT definiert den Startwert in Spalte 1 der ORDER BY-Spalten. Das zweite Argument in START AT definiert den Startwert in Spalte 2 der ORDER BY-Spalten innerhalb der Zeilen, die den ersten Wert für Spalte 1 erfüllen.

START AT-Beispiel

EVALUATE ‘Internet Sales’ ORDER BY ‘Internet Sales'[Bestellnummer] START AT “SO7000”

Liefert alle Zeilen und Spalten aus der Tabelle “Internet Sales” in aufsteigender Reihenfolge nach Bestellnummer ab SO7000.

DEFINE (Optional)

Das optionale Schlüsselwort DEFINE führt eine oder mehrere definierte Entitätsdefinitionen ein, die nur für die Dauer der Abfrage existieren. Die Definitionen stehen vor der EVALUATE-Anweisung und gelten für alle EVALUATE-Anweisungen in der Abfrage. Definitionen können Variablen, Maße, Tabellen1 und Spalten1 sein. Definitionen können auf andere Definitionen verweisen, die vor oder nach der aktuellen Definition erscheinen. Mindestens eine Definition ist erforderlich, wenn das DEFINE-Schlüsselwort in einer Abfrage enthalten ist.

LESEN  Bezahlen mit Visa und Mastercard: Die wichtigsten Infos

DEFINE Syntax

[DEFINE ( (MEASURE <tabellenname>[<maßname>] = <skalarausdruck>) | (VAR <var name> = <tabellen- oder skalarausdruck>) | (TABLE <tabellenname> = <tabellenausdruck>) | (COLUMN <tabellenname>[<spaltenname>] = <skalarausdruck>) | ) + ] (EVALUATE <tabellenausdruck>) +

DEFINE-Parameter

Begriff Definition
Entität MEASURE, VAR, TABLE1 oder COLUMN1.
Name Der Name einer Maßnahme, Variablen, Tabelle oder Spaltendefinition. Es darf kein Ausdruck sein. Der Name gilt nur für die Dauer der Abfrage.
Ausdruck Jeder DAX-Ausdruck, der eine Tabelle oder einen skalaren Wert zurückgibt. Der Ausdruck kann eine der definierten Entitäten verwenden. Wenn ein skalarausdruck in einen Tabellenausdruck konvertiert werden soll, um den Ausdruck in geschweifte Klammern {} einzuschließen, oder die Funktion ROW() zu verwenden, um eine Tabellenzeile zurückzugeben.

[1] Vorsicht: Abfragebezogene TABLE- und COLUMN-Definitionen sind nur für den internen Gebrauch bestimmt. Obwohl Sie TABLE- und COLUMN-Ausdrücke für eine Abfrage definieren können, ohne einen Syntaxfehler zu erzeugen, können sie Laufzeitfehler verursachen und werden nicht empfohlen.

DEFINE-Bemerkungen

  • Eine DAX-Abfrage kann mehrere EVALUATE-Anweisungen enthalten, jedoch nur eine DEFINE-Anweisung.
  • Mindestens eine Definition ist in einer DEFINE-Anweisung erforderlich.
  • Maßnahmendefinitionen für eine Abfrage überschreiben Modellmaßnahmen mit demselben Namen, werden jedoch nur innerhalb der Abfrage verwendet. Sie beeinflussen die Modellmaßnahme nicht.
  • VAR-Namen haben eindeutige Einschränkungen. Weitere Informationen finden Sie unter VAR-Parameter.

DEFINE-Beispiel

DEFINE MEASURE ‘Internet Sales'[Gesamtumsatz Internet] = SUM ( ‘Internet Sales'[Umsatz] ) EVALUATE SUMMARIZECOLUMNS ( ‘Datum'[Kalenderjahr], TREATAS ( { 2013, 2014 }, ‘Datum'[Kalenderjahr] ), “Gesamtumsatz”, [Gesamtumsatz Internet], “Gesamter Umsatz der kombinierten Jahre”, CALCULATE ( [Gesamtumsatz Internet], ALLSELECTED ( ‘Datum'[Kalenderjahr] ) ) ) ORDER BY [Kalenderjahr]

Liefert 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. Das Maß in der DEFINE-Anweisung, Gesamtumsatz Internet, wird in den Ausdrücken Gesamtumsatz und Gesamter Umsatz der kombinierten Jahre verwendet.

LESEN  Kostenlose SSL-Zertifikate – Die besten Anbieter im Webhosting Vergleich

Parameter in DAX-Abfragen

Eine gut definierte DAX-Abfrage kann parametrisiert werden und dann immer wieder mit nur Änderungen an den Parameterwerten verwendet werden.

Die Execute-Methode (XMLA) verfügt über eine Parameters-Element (XMLA) Sammlungselement, das das Definieren von Parametern und das Zuweisen eines Werts ermöglicht. Innerhalb der Sammlung definiert jedes Parameter-Element (XMLA) das Namen des Parameters und einen Wert.

Verwende XMLA-Parameter, indem du den Namen des Parameters mit einem @-Zeichen versehen. An jedem Ort in der Syntax, an dem ein Wert erlaubt ist, kann der Wert durch einen Parameteraufruf ersetzt werden. Alle XMLA-Parameter haben den Datentyp Text.

Siehe auch

DAX-Statements SUMMARIZECOLUMNS TREATAS FILTER