Grundlegendes MDX-Skript (MDX)
Gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
Ein MDX-Skript (Multidimensional Expressions) definiert den Berechnungsprozess für einen Cube in Microsoft SQL Server SQL Server Analysis Services. Es gibt zwei Arten von MDX-Skripts:
Das MDX-Standardskript
Zum Zeitpunkt der Erstellung eines Cubes erstellt SQL Server Analysis Services ein MDX-Standardskript für diesen Cube. In diesem Skript ist ein Berechnungsdurchlauf für den gesamten Cube definiert.
Benutzerdefiniertes MDX-Skript
Nachdem Sie einen Cube erstellt haben, können Sie benutzerdefinierte MDX-Skripts hinzufügen, um die Berechnungsmöglichkeiten für den Cube zu erweitern.
Das MDX-Standardskript
Das MDX-Standardskript, das SQL Server Analysis Services erstellt, wenn Sie einen Cube definieren, enthält eine einzelne CALCULATE-Anweisung. Diese einzige CALCULATE-Anweisung befindet sich am Anfang des MDX-Standardskripts und gibt an, dass beim ersten Berechnungsdurchlauf der gesamte Cube berechnet werden soll.
Das MDX-Standardskript enthält außerdem die Skriptbefehle, die benannte Mengen, Zuweisungen und berechnete Elemente erstellen, die im Cube-Designer erstellt wurden:
SQL Server Analysis Services fügt dem MDX-Standardskript direkt Skriptbefehle hinzu.
Für jede benannte Menge im Cube gibt es im MDX-Standardskript eine entsprechende CREATE SET-Anweisung.
Für jedes berechnete Element, das im Cube definiert ist, gibt es im MDX-Standardskript eine entsprechende CREATE MEMBER-Anweisung.
Die Reihenfolge, die die Skriptbefehle, benannten Mengen und berechneten Elemente im MDX-Standardskript haben, können Sie im Cube-Designer über die Registerkarte Berechnungen festlegen. Weitere Informationen zum Definieren von Berechnungen, die im MDX-Standardskript gespeichert werden, finden Sie unter Berechnungen in mehrdimensionalen Modellen.
Ist einem Cube kein MDX-Skript zugeordnet, nimmt der Cube das MDX-Standardskript an. Einem Cube muss mindestens ein MDX-Skript zugeordnet sein, weil ein Cube anhand des MDX-Skripts das Berechnungsverhalten ermittelt. Dies bedeutet, dass ein Cube, dem kein oder ein leeres MDX-Skript zugeordnet wurde, keine Zellen berechnen kann. Wenn Sie Cubes programmgesteuert erstellen, entweder mit ASSL-Befehlen (Analysis Services Scripting Language) oder mit Analysis Management Objects (AMO), empfiehlt es sich, dass Sie ein MDX-Standardskript erstellen, das eine einzige CALCULATE-Anweisung für den Cube enthält.
Inhalt eines MDX-Skripts
Ein MDX-Skript kann die folgenden Anweisungen und Ausdrücke enthalten:
Alle MDX-Skriptanweisungen
In einem MDX-Skript steuern MDX-Skriptbefehle den Kontext und den Gültigkeitsbereich von Berechnungen und verwalten das Verhalten anderer Anweisungen im MDX-Skript. Zu dieser Kategorie gehören die folgenden Anweisungen:
Weitere Informationen zu MDX-Skriptanweisungen finden Sie unter MDX-Skriptanweisungen (MDX).
CREATE MEMBER
Die CREATE MEMBER-Anweisung erstellt berechnete Elemente. Weitere Informationen zum Erstellen berechneter Member finden Sie unter Erstellen berechneter Elemente in MDX (MDX).
CREATE SET
Die CREATE SET-Anweisung erstellt benannte Mengen. Weitere Informationen zum Erstellen von Namenssätzen finden Sie unter Erstellen benannter Sätze in MDX (MDX).
Bedingungsanweisungen
Bedingte Anweisungen erweitern MDX-Skripts um logische Befehle mit Bedingungen. Zu dieser Kategorie gehören die Anweisungen CASE und IF .
Zuweisungsausdrücke
Ein Zuweisungsausdruck weist einem eingeschränkten Teilcube einen Ausdruck (z. B. einen Wert) zu. Ein eingeschränkter Teilcubeausdruck ist eine Auflistung eingeschränkter Mengenausdrücke, die in einem MDX-Skript die "Kanten" eines Teilcubes definieren. Der folgende Code zeigt die Syntax für einen eingeschränkten Teilcubeausdruck:
<Constrained subcube> ::= (
( <Constrained set> [<Crossjoin operator> <Constrained set>...] |
<ROOT function> |
<TREE function> |
LEAVES() |
* ) [, <Constrained subcube>...]
<Constrained set> ::=
<Natural hierarchy>.MEMBERS |
<Natural hierarchy>.LEVEL(<numeric expression>).MEMBERS |
{ <Natural hierarchy member> } |
DESCENDANTS( <Natural hierarchy member>, <Level expression>, ( SELF | AFTER | SELF_AND_AFTER ) ) |
DESCENDANTS( <Natural hierarchy member>, , LEAVES )
<Natural hierarchy> ::= <Hierarchy identifier>
<Natural hierarchy member> ::= <Natural hierarchy>.<identifier>[.<identifier>...]
Weitere Informationen
MDX-Sprachreferenz (MDX)
Grundlegendes zu MDX-Skripts (Analysis Services)