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)