MDX wprowadzenie

MDX

MDX – Multidimensional Expressions – język zapytań przeznaczony do odpytywania wielowymiarowych struktur OLAP. Język ten jest wzorowany na języku T-SQL.

Po podłączeniu się w Management Studio do bazy analitycznej, możesz pisać zapytania w języku MDX wybierając New Query po kliknięciu prawym przyciskiem myszy na wybranie bazie.

SELECT FROM

Podobnie jak w języku SQL podstawowa składnia zapytania to SELECT …. FROM, jednakże skoro odpytujemy kostkę analityczną zatem w instrukcji FROM podajemy nazwę kostki. Składnia wymaga, aby nazwę zamknąć w nawiasach kwadratowych.

Skorzystaj z bazy AdventureWorksDW2012Multidimensional. Baza ta zawiera dwie kostki. Użyj Adventure Works.

Instrukcja FROM będzie wyglądała następująco:

FROM [Adventure Works]

Teraz możemy stworzyć instrukcję SELECT. Najprostsza z możliwych to instrukcja pokazująca tylko i wyłącznie jedną miarę. Wybierz miarę Internet Order Count. Bezpośredni po słowie SELECT musisz wpisać [Measure]. i następnie nazwę miary również w nawiasach kwadratowych. Kolejnym elementem jest wskazanie, że jest to kolumna. Wpisz zatem ON COLUMNS lub ON 0. Teraz Twoja instrukcja powinna wyglądać tak:

SELECT {[Measures].[Internet Order Count]} ON COLUMNS
FROM [Adventure Works];

Po wykonaniu instrukcji otrzymasz wynik:

Teraz możesz dodać wymiary do Twojego zapytania. Sprawdź jak wyglądają zamówienia internetowe w latach. Skorzystaj w wymiaru Date.

W celu dodania wymiaru do zapytanie postaw po wyrażeniu ON COLUMNS przecinek. Następnie wpisz nazwę wymiaru oraz poziom na jakim chcesz widzieć wynik i dopisz ON ROWS lub ON 1. Twoje zapytanie to:

SELECT {[Measures].[Internet Order Count]} ON COLUMNS,
{[Date].[Calendar Year].[Calendar Year]} ON ROWS
FROM [Adventure Works];

Otrzymasz wynik:

Jak widać są lata, w których nie było sprzedaży. Usuń te wiersze poprzez zastosowanie funkcji NONEMPTY. Podobnie jak poprzednio, zamknij tekst od przecinak do słowa on nawiasami sześciennymi. Zmień zapytanie:

SELECT {[Measures].[Internet Order Count]} ON COLUMNS,
NONEMPTY (
{[Date].[Calendar Year].[Calendar Year]}
) ON ROWS
FROM [Adventure Works];

W rezultacie otrzymasz wynik:

WHERE

Możesz teraz dodać filtr. Pokaż sprzedaż w latach, ale tylko z czwartego kwartału. Wykorzystaj instrukcję WHERE. Napisz:

SELECT {[Measures].[Internet Order Count]} ON COLUMNS,
{[Date].[Calendar Year].[Calendar Year]} ON ROWS
FROM [Adventure Works]
WHERE [Date].[Calendar Quarter of Year].&[CY Q4];

Ostatecznie wynik jaki otrzymasz to:

Tags:  , , , , ,

Odpowiedz

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>