Freigeben über


Angeben des Inhalts einer Slicerachse (MDX)

Die Slicerachse filtert die von der SELECT-Anweisung von MDX (Multidimensional Expressions) zurückgegebenen Daten, sodass nur die Daten zurückgegeben werden, die sich mit den angegebenen Elementen überschneiden. Sie kann als nicht sichtbare Zusatzachse in einer Abfrage betrachtet werden. Die Slicerachse wird in der WHERE-Klausel der SELECT-Anweisung von MDX definiert.

Slicerachse (Syntax)

Zum expliziten Angeben einer Slicerachse verwenden Sie in MDX die folgende <SELECT slicer axis clause>-Syntax:

<SELECT slicer axis clause> ::=  WHERE Set_Expression

In dieser Syntax der Slicerachse kann Set_Expression entweder einem Tupelausdruck entsprechen, der zum Auswerten der Klausel wie eine Menge behandelt wird, oder einem Mengenausdruck. Wird ein Mengenausdruck angegeben, versucht MDX, die Menge auszuwerten, indem die Ergebniszellen in jedem Tupel der Menge aggregiert werden. Das heißt, MDX versucht, die Aggregate-Funktion auf die Menge anzuwenden und aggregiert jedes Measure durch die ihm zugeordnete Aggregatfunktion. Wenn der Mengenausdruck nicht als Kreuzprodukt von Elementen der Attributhierarchie ausgedrückt werden kann, behandelt MDX Zellen außerhalb des Mengenausdrucks für die Slicerachse bei der Auswertung als NULL-Werte.

Wichtiger HinweisWichtig

Im Gegensatz zur WHERE-Klausel in SQL filtert die WHERE-Klausel einer MDX-SELECT-Anweisung nicht direkt die Inhalte, die auf der Zeilenachse einer Abfrage zurückgegeben werden. Verwenden Sie zum Filtern der Inhalte der Zeilen- oder Spaltenachse einer Abfrage verschiedene MDX-Funktionen, beispielsweise FILTER, NONEMPTY und TOPCOUNT.

Implizite Slicerachse

Wenn ein Element aus einer Hierarchie im Cube nicht explizit in eine Abfrageachse eingeschlossen wird, wird das Standardelement aus dieser Hierarchie implizit in die Slicerachse eingeschlossen. Weitere Informationen zu Standardelementen finden Sie unter Definieren eines Standardelements.

Beispiele

Die folgende Abfrage enthält keine WHERE-Klausel und gibt den Wert des Measures für den Betrag der Internetverkäufe für alle Kalenderjahre zurück:

SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
[Date].[Calendar Year].MEMBERS ON ROWS
FROM [Adventure Works]

Auswirkungen des Hinzufügens einer WHERE-Klausel:

SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
[Date].[Calendar Year].MEMBERS ON ROWS
FROM [Adventure Works]
WHERE([Customer].[Customer Geography].[Country].&[United States])

Bewirkt keine Änderung der in den Zeilen oder Spalten der Abfrage zurückgegebenen Inhalte. Die pro Zelle zurückgegebenen Werte werden jedoch geändert. In diesem Beispiel wird die Abfrage in Slices aufgeteilt, sodass sie den Wert des Betrags der Internetverkäufe für alle Kalenderjahre zurückgibt (jedoch nur für Kunden, die in den USA leben). Mehrere Elemente verschiedener Hierarchien können der WHERE-Klausel hinzugefügt werden. Die folgende Abfrage zeigt den Wert des Betrags der Internetverkäufe für alle Kalenderjahre und für Kunden, die in den USA leben und Produkte in der Kategorie "Fahrräder" gekauft haben:

SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
[Date].[Calendar Year].MEMBERS ON ROWS
FROM [Adventure Works]
WHERE([Customer].[Customer Geography].[Country].&[United States], [Product].[Category].&[1])

Wenn Sie mehrere Elemente der gleichen Hierarchie verwenden möchten, binden Sie eine bestimmte Gruppe in die WHERE-Klausel ein. Die folgende Abfrage zeigt z. B. den Wert des Betrags der Internetverkäufe für alle Kalenderjahre und für Kunden an, die Produkte in der Kategorie "Fahrräder" gekauft haben und entweder in den USA oder im Vereinigten Königreich leben:

SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
[Date].[Calendar Year].MEMBERS ON ROWS
FROM [Adventure Works]
WHERE(
{[Customer].[Customer Geography].[Country].&[United States]
, [Customer].[Customer Geography].[Country].&[United Kingdom]}
, [Product].[Category].&[1])

Wie oben erwähnt, werden Werte durch die Verwendung einer Gruppe in der WHERE-Klausel für alle Elemente der Gruppe implizit aggregiert. In diesem Fall zeigt die Abfrage aggregierte Werte für die USA und das Vereinigte Königreich in jeder Zelle an.