Określanie zawartości oś fragmentatora (MDX)
Oś fragmentatora filtruje dane zwrócone przez MDX (Multidimensional Expressions) wybierz instrukcja, ograniczanie zwracanych danych, dzięki czemu zostaną zwrócone dane tylko przecinające się z tymi elementami.Go można traktować jako dodatkowe niewidocznej oś w kwerendzie.Oś fragmentatora jest zdefiniowany w klauzula WHERE instrukcja SELECT w języku MDX.
Składnia oś fragmentatora
Aby jawnie określić oś fragmentatora, za pomocą <SELECT slicer axis clause> w języku MDX, jak opisano w następującej składni:
<SELECT slicer axis clause> ::= WHERE Set_Expression
W składni oś fragmentatora pokazano Set_Expression można wykonać albo spójna kolekcja wyrażenie, które jest traktowana jako zestaw do celów oceny klauzula, lub wyrażenie zestawu.Jeśli określono wyrażenie zestaw MDX próbuje ocenić zestaw, agregowania komórki wynikowe w każdej spójna kolekcja wzdłuż zestaw.Innymi słowy, MDX będzie próbował używać agregacja działać na zestaw, agregowania każdego miara przez jego funkcja agregacja skojarzone.Ponadto jeśli wyrażenie zestaw nie może być wyrażona jako crossjoin z hierarchia atrybutu członków, MDX traktuje komórek mieści się wyrażenie zestaw fragmentator jako null dla celów ewaluacji.
Ważne: |
|---|
W przeciwieństwie do klauzula WHERE w języku SQL, MDX wybierz klauzula instrukcja nigdy bezpośrednio filtry zwróconą na oś wierszy kwerendy.Aby filtrować, co jest wyświetlane na oś wierszy lub kolumn kwerendy, można użyć różne funkcje MDX, na przykład filtr, NONEMPTY a TOPCOUNT. |
Niejawna oś fragmentatora
Jeśli składnik hierarchii wewnątrz moduł nie jest jawnie uwzględniony osi kwerendy, domyślny element członkowski z tej hierarchii dołączono niejawnie oś fragmentatora.Aby uzyskać więcej informacji dotyczących członków domyślnych, zobacz Definiowanie domyślnego elementu członkowskiego.
Przykłady
Następująca kwerenda nie zawiera klauzula WHERE i zwraca wartość miara Internet Sales Amount we wszystkich latach kalendarza:
SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
[Date].[Calendar Year].MEMBERS ON ROWS
FROM [Adventure Works]
Dodawanie klauzula WHERE w następujący sposób:
SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
[Date].[Calendar Year].MEMBERS ON ROWS
FROM [Adventure Works]
WHERE([Customer].[Customer Geography].[Country].&[United States])
nie zmienia to, co jest zwracany w wierszach lub kolumnach w kwerendzie; zmienia wartości zwracane dla każdej komórka.W tym przykładzie kwerendy jest podzielona, tak że zwraca wartość kwoty sprzedaży internetowej dla wszystkich lat kalendarzowych, ale tylko dla klientów mieszkających w States.Multiple Zjednoczone członków z różnych hierarchii mogą być dodawane do klauzula WHERE.Następująca kwerenda pokazuje wartość Internet Sales Amount wszystkie lata kalendarzowe klientów mieszkających w Stanach Zjednoczonych i kto zakupionych produktów w kategorii Bikes:
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])
Do używania wielu członków z tej samej hierarchii, należy uwzględnić zestaw w klauzula WHERE.Na przykład poniższa kwerenda pokazuje wartość Internet Sales Amount wszystkie lata kalendarzowe dla klientów, którzy zakupionych produktów w kategorii Bikes i mieszka w Stanach Zjednoczonych lub w Zjednoczonym Królestwie:
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])
Jak wspomniano powyżej, używając zestaw w klauzula WHERE niejawnie będzie wartość zagregowana wartości dla wszystkich elementów w zestawie.W tym przypadek kwerenda pokazuje zagregowane wartości dla Stanów Zjednoczonych i Zjednoczone Królestwo w każdym komórka.
Ważne: