Udostępnij za pośrednictwem


Określanie zawartości osi kwerendy (MDX)

Osie kwerendy określić krawędzi zestawu komórek, zwracany przez MDX (Multidimensional Expressions) wybierz instrukcja.Określanie krawędzi zestaw komórek pozwala ograniczyć dane zwracane jest widoczny dla klient.

Osie kwerendy, można użyć <SELECT query axis clause> na przypisywanie zestaw do oś kwerendy.Każdy <SELECT query axis clause> wartość definiuje jedną oś kwerendy.Liczba osi w zestawie danych jest równa Liczba <SELECT query axis clause> wartości w instrukcja SELECT.

Składnia kwerendy osi

Następująca składnia przedstawiono składnię <SELECT query axis clause>:

<SELECT query axis clause> ::=
   [ NON EMPTY ] Set_Expression [ <SELECT dimension property list clause> ] [<HAVING clause>]
   ON {
      Integer_Expression | 
      AXIS( Integer_Expression ) | 
      {COLUMNS | ROWS | PAGES | SECTIONS | CHAPTERS}   
      }
      

Każdej oś kwerendy ma numer: zero (0) dla oś x 1, dla oś y, 2 dla oś z i tak dalej.W składni <SELECT query axis clause>, Integer_Expression wartość określa liczbę oś.Kwerendy MDX może obsługiwać maksymalnie 128 określonej osi, ale bardzo niewiele kwerendy MDX będzie używać więcej niż 5 osi.Dla pierwszych 5 osi można zamiast nich używane aliasy, kolumn, wierszy, strony, sekcje i ROZDZIAŁY.

Kwerendy MDX nie można pominąć osie kwerendy.Oznacza to, że kwerendy zawierającej jeden lub więcej osiach kwerendy nie należy wykluczyć niższych numerach lub pośredniego osi.Na przykład kwerenda nie oś wierszy bez osi kolumn lub mają osi kolumn i stron bez oś wierszy.

Można jednak określić klauzula SELECT bez żadnych osi (czyli pusty klauzula SELECT).W takim przypadek wszystkie wymiary są wymiary fragmentator i kwerendy MDX wybiera jedną komórka.

W składni oś kwerendy poprzednio wykazano, każdy Set_Expression wartość określa zestaw definiuje zawartość oś kwerendy.Aby uzyskać więcej informacji na temat zestawów, zobacz Praca z członków, krotek i zestawy (MDX).

Przykłady

Następujące prosta instrukcja SELECT zwraca miara Internet Sales Amount na oś kolumn i używa funkcja MDX członków zwraca wszystkie elementy z hierarchii kalendarz na wymiar Data na oś wierszy:

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

Dwa następujące kwerendy zwracają te same wyniki, ale demonstrują użycie oś liczb zamiast aliasów:

SELECT {[Measures].[Internet Sales Amount]} ON 0,
{[Date].[Calendar].MEMBERS} ON 1
FROM [Adventure Works]

SELECT {[Measures].[Internet Sales Amount]} ON AXIS(0),
{[Date].[Calendar].MEMBERS} ON AXIS(1)
FROM [Adventure Works]

NIEPUSTE słowo kluczowe używane przed definicji zestaw jest prosty sposób usunąć wszystkie puste krotek z oś.Na przykład w przykładach, możemy wyświetlonymi wcześniej tak dalece jest nie danych moduł z sierpnia 2004 r.Aby usunąć wszystkie wiersze z zestaw komórek , nie zawierają danych w dowolnej kolumna po prostu dodać NIEPUSTE przed zestawu definicji oś wierszy w następujący sposób:

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

NIEPUSTE mogą być używane na wszystkich osi w kwerendzie.Porównać wyniki następujące dwie kwerendy, z których pierwszy nie używa nie jest pusty, a drugi z nich jest wzdłuż obu osi:

SELECT {[Measures].[Internet Sales Amount]} 
* [Promotion].[Promotion].[Promotion].MEMBERS
ON COLUMNS,
{[Date].[Calendar].[Calendar Year].MEMBERS} ON ROWS
FROM [Adventure Works]
WHERE([Product].[Subcategory].&[19])

SELECT NON EMPTY {[Measures].[Internet Sales Amount]} 
* [Promotion].[Promotion].[Promotion].MEMBERS
ON COLUMNS,
NON EMPTY
{[Date].[Calendar].[Calendar Year].MEMBERS} ON ROWS
FROM [Adventure Works]
WHERE([Product].[Subcategory].&[19])

Klauzula HAVING może służyć do filtrowania zawartości oś na podstawie określonych kryteriów; jest mniej elastyczne niż inne metody, które można osiągnąć te same wyniki, takie jak funkcja Filtr, ale jest prostszy do używania.Oto przykład zwraca tylko te daty, gdzie Internet Sales Amount jest większa niż 15 000 $:

SELECT {[Measures].[Internet Sales Amount]} 
ON COLUMNS,
NON EMPTY
{[Date].[Calendar].[Date].MEMBERS} 
HAVING [Measures].[Internet Sales Amount]>15000
ON ROWS
FROM [Adventure Works]