Freigeben über


Festlegen des Inhalts einer Slicer-Achse (MDX)

Die Slicer-Achse filtert die Daten, die von der Multidimensional Expressions (MDX) SELECT-Anweisung zurückgegeben werden, und schränkt die zurückgegebenen Daten ein, sodass nur Daten zurückgegeben werden, die sich mit den angegebenen Elementen schneiden. Es kann als unsichtbare Extraachse in einer Abfrage betrachtet werden. Die Datenschnittachse wird in der WHERE-Klausel der SELECT-Anweisung in MDX definiert.

Datenschnittachsensyntax

Um eine Datenschnittachse explizit anzugeben, verwenden Sie die <SELECT slicer axis clause> IN MDX, wie in der folgenden Syntax beschrieben:

<SELECT slicer axis clause> ::=  WHERE Set_Expression  

In der angezeigten Set_Expression Datenschnittachsensyntax kann entweder ein Tupelausdruck verwendet werden, der als Satz behandelt wird, um die Klausel auszuwerten, oder einen Satzausdruck. Wenn ein Satzausdruck angegeben ist, versucht MDX, den Satz auszuwerten und die Ergebniszellen in jedem Tupel entlang des Satzes zu aggregieren. Mit anderen Worten, MDX versucht, die Aggregatfunktion für die Menge zu verwenden, wobei jedes Measure anhand seiner zugeordneten Aggregationsfunktion aggregiert wird. Wenn der Satzausdruck nicht als Kreuzverknüpfung von Attributhierarchiemelementen ausgedrückt werden kann, behandelt MDX Zellen, die außerhalb des Satzausdrucks für den Datenschnitt fallen, als NULL für Auswertungszwecke.

Von Bedeutung

Im Gegensatz zur WHERE-Klausel in SQL filtert die WHERE-Klausel einer MDX SELECT-Anweisung niemals direkt, was auf der Zeilenachse einer Abfrage zurückgegeben wird. Um zu filtern, was auf der Zeilen- oder Spaltenachse einer Abfrage angezeigt wird, können Sie eine Vielzahl von MDX-Funktionen verwenden, z. B. FILTER, NONEMPTY und TOPCOUNT.

Implizite Achse des Datenfilters

Wenn ein Element aus einer Hierarchie innerhalb des Cubes nicht explizit in einer Abfrageachse enthalten ist, wird das Standardelement aus dieser Hierarchie implizit in die Datenschnittachse einbezogen. Weitere Informationen zu Standardmitgliedern finden Sie unter Standardmitglied definieren.

Beispiele

Die folgende Abfrage enthält keine WHERE-Klausel und gibt den Wert der Kennzahl "Internet Sales Amount" für alle Kalenderjahre zurück.

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

Hinzufügen einer WHERE-Klausel wie folgt:

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

ändert nicht, was für Zeilen oder Spalten in der Abfrage zurückgegeben wird; sie ändert die für jede Zelle zurückgegebenen Werte. In diesem Beispiel wird die Abfrage segmentiert, sodass sie den Wert des Internetumsatzbetrags für alle Kalenderjahre zurückgibt, aber nur für Kunden, die in den USA leben.Mehrere Member aus verschiedenen Hierarchien können der WHERE-Klausel hinzugefügt werden. Die folgende Abfrage zeigt den Wert des Internetverkaufsbetrags für alle Kalenderjahre für Kunden, die in den USA leben und Produkte in den Kategorierädern 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 aus derselben Hierarchie verwenden möchten, müssen Sie einen Satz in die WHERE-Klausel einschließen. Die folgende Abfrage zeigt z. B. den Wert des Internetverkaufsbetrags für alle Kalenderjahre für Kunden an, die Produkte in der Kategorie Bikes 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 bereits erwähnt, aggregiert die Verwendung eines Satzes in der WHERE-Klausel implizit Werte für alle Elemente im Satz. In diesem Fall zeigt die Abfrage aggregierte Werte für die Vereinigten Staaten und das Vereinigte Königreich in jeder Zelle an.