Podstawy MDX. Podstawy MDX. Podstawy MDX. Struktura kostki [BiznesG]

Wielkość: px
Rozpocząć pokaz od strony:

Download "Podstawy MDX. Podstawy MDX. Podstawy MDX. Struktura kostki [BiznesG]"

Transkrypt

1 Podstawowe zapytanie MDX ma strukturę podobną do zapytań SQL. Najprostsza postać zwraca dwuwymiarową kostkę: opis osi ON COLUMNS, opis osi ON ROWS FROM nazwa_kostki [WHERE opis_plastra] Najprostsza postać opisu osi lub wyboru członów używa MEMBERS jako wymaganego wymiaru, łącznie ze wymiarem Measures: Measures.MEMBERS ON COLUMNS, [Nazwa kategorii].members ON ROWS Opis osi może być traktowany jako wybór członu dla osi. Jeżeli wymagany jest pojedynczy wymiar, przy użyciu takiego zapisu musi być zwrócone COLUMNS. Dla większej ilości wymaganych wymiarów nazwami osi byłyby PAGES (strony), CHAPTERS (rozdziały) oraz SECTIONS (sekcje). Jeśli chcemy użyć bardziej uniwersalnych określeń osi, możemy użyć konwencji: AXIS(index), gdzie index jest zakresem rozpoczynającym się od zera. W Management Studio dopuszczalne tylko dwie osie. Jeżeli chcemy wyliczyć elementy wymiaru, mogą one być zwrócone jako pojedyncza oś (lista ograniczona {...} rozdzielona, : Measures.MEMBERS ON COLUMNS, {[Nazwa kategorii].[clocks], [Nazwa kategorii].[sampler] } ON ROWS Struktura kostki [BiznesG] 1

2 Parents Descendants ANCESTOR(Time.[2000].[Q1], Time.[Year]) Time.[2000].[Q1].Parent.Parent Time.[2000].Parent All Time.[2001].Parent All Time.[2000].[Q1].Parent Descendants( Time.[2000], Quarter) Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Jan Feb Mar Oct Nov Dec Jan Feb Mar Oct Nov Dec Descendants( Time.[2000], Month) Children Descendants All All Time.[2000].FirstChild Time.[2000].Children Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Jan Feb Mar Oct Nov Dec Jan Feb Mar Oct Nov Dec Descendants(Time.[2000].[Jan], Month) 2

3 Aby uzyskać miary dla członów składających się na te kategorie, zapytalibyśmy ich dzieci (CHILDREN): Measures.MEMBERS ON COLUMNS, {[KategoriaProduktuH].[Nazwa kategorii].[clocks].children, [KategoriaProduktuH].[Nazwa kategorii].[sampler].children } ON ROWS Miary obliczane nie są dołączane, gdy pobierane są człony wymiarów. Ich uwzględnienie musi być jawnie narzucone, przez użycie funkcji ADDCALCULATEDMEMBERS:. ADDCALCULATEDMEMBERS(Measures.MEMBERS) ON COLUMNS, {[KategoriaProduktuH].[Nazwa kategorii].[clocks], DESCENDANTS( [KategoriaProduktuH].[Nazwa kategorii].[clocks],[nazwa Towaru])}ON ROWS Funkcja MEMBERS zwraca elementy wskazanego wymiaru lub poziomu wymiarów. Funkcja CHILDREN zwraca dzieci dla określonego członu wymiaru. Obie funkcje są używane przy formułowaniu wyrażeń, ale nie zapewniają możliwości rozwijania do niższych poziomów hierarchii. Przy użyciu funkcji DESCENDANTS możliwe się staje zapytanie kostki o informacje na poziomie nazwa towaru dla wybranej kategorii Measures.MEMBERS ON COLUMNS, { [KategoriaProduktuH].[Nazwa kategorii].[clocks], DESCENDANTS( [KategoriaProduktuH].[Nazwa kategorii].[clocks], [Nazwa Towaru]) }ON ROWS Wybór miar do wyświetlenia {MEASURES.wartosc, MEASURES.zysk} ON COLUMNS, { [KategoriaProduktuH].[Nazwa kategorii].[clocks], DESCENDANTS( [KategoriaProduktuH].[Nazwa kategorii].[clocks], [Nazwa Towaru]) }ON ROWS DESCENDANTS(człon, poziom [, flagi]) Wartość flagi może wynosić: SELF (domyślna wartość), BEFORE, AFTER lub BEFORE_AND_AFTER 3

4 Zastosowanie krotki na wymiarach w celu wyświetlenia hierarchii ADDCALCULATEDMEMBERS(Measures.MEMBERS) ON COLUMNS, {CROSSJOIN( [KategoriaTowaruG].[Nazwa kategorii].members, [KategoriaProduktuH].[Nazwa Towaru].members)}ON ROWS Każda pozycja z jednego wymiaru z każdą z drugiego CROSSJOIN nie może być zastosowany do dwa razy występującego tego samego wymiaru Zastosowanie krotki na wymiarach w celu wyświetlenia hierarchii ADDCALCULATEDMEMBERS(Measures.MEMBERS) ON COLUMNS, { NONEMPTY (CROSSJOIN( FILTER ( [KategoriaTowaruG].[Nazwa kategorii].members, [KategoriaTowaruG].[Nazwa kategorii]<>[kategoriatowarug].[nazwa kategorii].[all] ), [KategoriaProduktuH].[Nazwa Towaru].members)) }ON ROWS Wyeliminowanie elementu ALL reprezentującego wszystkie obiekty poziomu nadrzędnego osiągamy przez zastosowanie funkcji FILTER Zastosowanie krotki na wymiarach w celu wyświetlenia hierarchii ADDCALCULATEDMEMBERS(Measures.MEMBERS) ON COLUMNS, { NONEMPTY (CROSSJOIN( [KategoriaTowaruG].[Nazwa kategorii].members, [KategoriaProduktuH].[Nazwa Towaru].members)) }ON ROWS Nie zastosowanie krotki powoduje spłaszczenie wyświetlania Measures.MEMBERS ON COLUMNS, { [KategoriaProduktuH].[Nazwa kategorii].members, [KategoriaProduktuH].[Nazwa Towaru].members}ON ROWS W celu wyeliminowania niepowiązanych rekordów zastosować możemy operator NONEMPTY Nazwy towarów dla kategorii CLOCKS 4

5 Specyfikację plastra definiuje się przez klauzulę WHERE [Nazwa Kategorii].MEMBERS ON COLUMNS, [LokalizacjaKlientaH].[Województwo].MEMBERS ON ROWS WHERE ([Measures].[wartosc]) [KategoriaTowaruG].[Nazwa Kategorii].MEMBERS ON COLUMNS, [LokalizacjaKlientaH].[Województwo].MEMBERS ON ROWS WHERE ([Measures].[wartosc], [Towar G].[Nazwa Kategorii].[CLOCKS]) Definiowanie plastra z wykorzystaniem dwóch wymiarów zawierających ten sam poziom Mało eleganckie ze względu na wartości NULL Bardziej szczegółową definicję plastra można osiągnąć przez zdefiniowanie konkretnej wartości wymiaru [Nazwa Kategorii].MEMBERS ON COLUMNS, [LokalizacjaKlientaH].[Województwo].MEMBERS ON ROWS WHERE ([Measures].[wartosc], [Data Faktury].[Rok].[2003]) Nie można do definiowania plastra użyć wymiaru poprzednio wykorzystanego do definiowania kolumn lub wierszy NONEMPTY([KategoriaTowaruG].[Nazwa Kategorii].MEMBERS) ON COLUMNS, [LokalizacjaKlientaH].[Województwo].MEMBERS ON ROWS WHERE ([Measures].[wartosc], [Towar G].[Nazwa Kategorii].[CLOCKS]) Definiowanie plastra z wykorzystaniem dwóch wymiarów zawierających ten sam poziom Pominięcie wartości NULL przy użyciu NONEMPTY 5

6 [KategoriaTowaruG].[Nazwa Kategorii].[CLOCKS] ON COLUMNS, [LokalizacjaKlientaH].[Województwo].MEMBERS ON ROWS WHERE ([Measures].[wartosc]) Definiowanie plastra z wykorzystaniem jawnego wskazania na wartość w kolumnie Możliwe jest wyznaczenie członów wyliczanych Ad hoc przy zastosowaniu klauzuli oraz miary wyliczanej MEMBER Measures.ZyskProcentowy AS '([Measures].[zysk]) / [Measures].[WartoscZakupu]', FORMAT_STRING = '#.00%' [KategoriaTowaruG].[Nazwa Kategorii].MEMBERS ON COLUMNS, [LokalizacjaKlientaH].[Województwo].MEMBERS ON ROWS WHERE Measures.ZyskProcentowy Możliwe jest wyznaczenie członów wyliczanych Ad hoc przy zastosowaniu klauzuli MEMBER Measures.ZyskProcentowy AS '([Measures].[Wartosc] - [Measures].[WartoscZakupu]) / [Measures].[WartoscZakupu]', FORMAT_STRING = '#.00%' [KategoriaTowaruG].[Nazwa Kategorii].MEMBERS ON COLUMNS, [LokalizacjaKlientaH].[Województwo].MEMBERS ON ROWS WHERE Measures.ZyskProcentowy Możliwe jest wyznaczenie członów wyliczanych Ad hoc przy zastosowaniu klauzuli MEMBER Measures.ZyskProcentowy AS ([Measures].[Wartosc] - [Measures].[WartoscZakupu]) / [Measures].[WartoscZakupu], FORMAT_STRING = '0.000%' ZyskProcentowy ON COLUMNS, [LokalizacjaKlientaH].[Województwo].MEMBERS ON ROWS 6

7 Możliwe jest wyznaczenie członów wyliczanych Ad hoc przy zastosowaniu klauzuli i odczytanie ich przez ADDCALCULATEDMEMBERS MEMBER Measures.ZyskProcentowy AS '([Measures].[zysk]) / [Measures].[WartoscZakupu]', FORMAT_STRING = '#.00%' ADDCALCULATEDMEMBERS(MEASURES.MEMBERS) ON COLUMNS, [LokalizacjaKlientaH].[Województwo].MEMBERS ON ROWS MEMBER Measures.ZyskProcentowy AS '([Measures].[zysk]) /[Measures].[WartoscZakupu]', FORMAT_STRING = '#.##%' MEMBER [Data Faktury].[Miesiac].PierwszaPolowa AS '[Miesiac].[1]+[Miesiac].[2]+[Miesiac].[3]+[Miesiac].[4]+[Miesiac].[5]+[Miesiac].[6]' MEMBER [Data Faktury].[Miesiac].DrugaPolowa AS '[Miesiac].[7]+[Miesiac].[8]+[Miesiac].[9]+[Miesiac].[10]+[Miesiac].[11] +[Miesiac].[12]' {PierwszaPolowa, DrugaPolowa, [Data Faktury].Miesiac.MEMBERS} ON COLUMNS, [KategoriaTowaruG].[Nazwa Kategorii].MEMBERS on ROWS WHERE Measures.ZyskProcentowy MEMBER Measures.ZyskProcentowy AS '([Measures].[zysk]) /[Measures].[WartoscZakupu]', FORMAT_STRING = '#.##%' MEMBER [Data Faktury].[Miesiac].PierwszaPolowa AS '[Miesiac].[1]+[Miesiac].[2]+[Miesiac].[3]+[Miesiac].[4]+[Miesiac].[5]+[Miesiac].[6]' MEMBER [Data Faktury].[Miesiac].DrugaPolowa AS '[Miesiac].[7]+[Miesiac].[8]+[Miesiac].[9]+[Miesiac].[10]+ [Miesiac].[11]+[Miesiac].[12]' {PierwszaPolowa, DrugaPolowa} ON columns, [KategoriaTowaruG].[Nazwa Kategorii].members on rows WHERE Measures.ZyskProcentowy Używając obliczanych członów możemy łatwo zdefiniować nowy wymiar CZASU służący do przedstawienia roku z rozbiciem na połowy : MEMBER Measures.ZyskProcentowy AS '([Measures].[zysk]) /[Measures].[WartoscZakupu]', FORMAT_STRING = '#.##%, SOLVE_ORDER=1 MEMBER [Data Faktury].[Miesiac].PierwszaPolowa AS '[Miesiac].[1]+[Miesiac].[2]+[Miesiac].[3]+[Miesiac].[4]+[Miesiac].[5]+[Miesiac].[6]' MEMBER [Data Faktury].[Miesiac].DrugaPolowa AS '[Miesiac].[7]+[Miesiac].[8]+[Miesiac].[9]+[Miesiac].[10]+[Miesiac].[11] +[Miesiac].[12]' {PierwszaPolowa, DrugaPolowa, [Data Faktury].Miesiac.MEMBERS} ON COLUMNS, [KategoriaTowaruG].[Nazwa Kategorii].MEMBERS on ROWS WHERE Measures.ZyskProcentowy Wymuszenie kolejność obliczania miar wyliczanych za pomocą SOLVE_ORDER=? 7

8 MEMBER Measures.ZyskProcentowy AS '([Measures].[zysk]) /[Measures].[WartoscZakupu]', FORMAT_STRING = '#.##%', SOLVE_ORDER=1 MEMBER [Data Faktury].[Kwartal].PierwszaPolowa AS '[Kwartal].[1]+[Kwartal].[2]' MEMBER [Data Faktury].[Kwartal].DrugaPolowa AS '[Kwartal].[3]+[Kwartal].[4]' {PierwszaPolowa, DrugaPolowa,[Data Faktury].Kwartal.MEMBERS} ON COLUMNS, [KategoriaTowaruG].[Nazwa Kategorii].MEMBERS ON ROWS WHERE Measures.ZyskProcentowy 1. How did Sales this period compare with Sales in the previous period? Q2 Qtr Apr May Jun Mon Sales Delta (DELTA) = (Time.CurrentMember, Measures.Sales) - Podobna realizacja ale dla wprowadzonej hierarchii Kwartal (Time.CurrentMember.PrevMember, Measures.Sales) Porównanie z poprzednim okresem Year Qtr Mon Sales Q1 120 Jan 30 Feb 40 Mar 50 Q2 200 Apr 65 May 45 Jun 90 Q3 185 Jul 55 Aug 60 Sep 70 Q4 285 Oct 80 Nov 100 Dec 105 Porównanie z równoległym okresem poprzedniego roku Year Qtr Mon Sales Q1 120 Jan 30 Feb 40 Mar 50 Q4 285 Oct 80 Nov 100 Dec Q1 170 Jan 50 Feb 55 Mar 65 Q4 275 Oct 90 Nov 100 Dec 85 8

9 Porównanie z równoległym okresem poprzedniego roku Year Qtr Mon Sales Delta Q1 120 Jan 30 Feb 40 Mar Q1 170 Jan Feb 55 Mar 65 (DELTA)= (Time.CurrentMember, Measures.Sales)- Źle (Time.CurrentMember.Lag(12), (ParallelPeriod(Year,1,Time.CurrentMember), Measures.Sales) Measures.Sales) 3. What have Sales been since the beginning of the year? Year Qtr Mon Sales YTD Q Jan Feb Mar Time.Jan,Measures.Sales + Sum(YTD(Time.CurrentMember), Time.Feb,Measures.Sales + Źle Sales) Time.Mar,Measures.Sales Wyznaczanie sumy bieżącej od początku roku Year Qtr Mon Sales Q1 120 Jan 30 Feb 40 Mar 50 Q2 200 Apr 65 May 45 Jun 90 Q3 185 Jul 55 Aug 60 Sep 70 Q4 285 Oct 80 Nov 100 Dec What have Sales been since the beginning of the year? Year Qtr Mon Sales Q1 120 Jan 30 Feb 40 Mar 50 Time.Jan,Measures.Sales + Time.Feb,Measures.Sales + Time.Mar,Measures.Sales Sum(YTD(Time.CurrentMember), Sales) = YTD

10 możemy wyświetlić zysk dla każdej kategorii towaru w każdym pierwszym kwartale (pierwszy potomek hierarchii) każdego roku: SET [Kwartal1] AS GENERATE([Data Faktury].[DataFakturyH].[Rok].MEMBERS, {[Data Faktury].[DataFakturyH].CURRENTMEMBER.FIRSTCHILD}) [Kwartal1] ON COLUMNS, [Towar G].[Nazwa Kategorii].MEMBERS ON ROWS WHERE ([Measures].[Zysk]) możemy wyświetlić zysk dla każdej kategorii towaru w każdym pierwszym kwartale (pierwszy potomek hierarchii - numeracja od 0) każdego roku: SET [Kwartal1] AS GENERATE([Data Faktury].[DataFakturyH].[Rok].MEMBERS, {[Data Faktury].[DataFakturyH].CURRENTMEMBER.children(0)}) [Kwartal1] ON COLUMNS, [Towar G].[Nazwa Kategorii].MEMBERS ON ROWS WHERE ([Measures].[Zysk]) możemy wyświetlić zysk dla każdej kategorii towaru w każdym ostatnim kwartale (Ostatni potomek hierarchii o ile istnieje) każdego roku: SET [Kwartal1] AS GENERATE([Data Faktury].[DataFakturyH].[Rok].MEMBERS, {[Data Faktury].[DataFakturyH].CURRENTMEMBER.LASTCHILD}) [Kwartal1] ON COLUMNS, [Towar G].[Nazwa Kategorii].MEMBERS ON ROWS WHERE ([Measures].[Zysk]) możemy wyświetlić zysk dla każdej kategorii towaru w każdym pierwszym kwartale (czwarty potomek hierarchii - numeracja od 0) każdego roku: SET [Kwartal1] AS GENERATE([Data Faktury].[DataFakturyH].[Rok].MEMBERS, {[Data Faktury].[DataFakturyH].CURRENTMEMBER.children(3)}) [Kwartal1] ON COLUMNS, [Towar G].[Nazwa Kategorii].MEMBERS ON ROWS WHERE ([Measures].[Zysk]) Gdy niezdefiniowano dla któregoś roku nie jest wyświetlany 10

11 Wyznaczmy sprzedaż danej marki produktu jako udział procentowy w sprzedaży jego kategorii czyli atrybutu, w odniesieniu do jego rodzica. Wyrażenie tworzące taki miarę obliczaną może zostać uzyskane przy użyciu właściwości CURRENTMEMBER oraz PARENT. MEMBER MEASURES.ZyskKategorii AS ([KategoriaProduktuH].CURRENTMEMBER.PARENt, [Measures].[Zysk]) MEMBER MEASURES.ZyskProcentowy AS ([KategoriaProduktuH].CURRENTMEMBER, [Measures].[Zysk])/ ([KategoriaProduktuH].CURRENTMEMBER.PARENT, [Measures].[Zysk]), FORMAT_STRING = '0.00%' {Measures.ZyskKategorii, [Measures].[Zysk], MEASURES.ZyskProcentowy} ON COLUMNS, [KategoriaProduktuH].[Nazwa Towaru] ON ROWS Wielokrotne użycie funkcji PARENT może być zastąpione przez obliczenie odpowiednich przodków członu CURRENTMEMBER przez funkcje ANCESTOR, zwracającą przodka na odpowiednim poziomie dla podanego członu. Konieczne jest użycie nazwy hierarchii: MEMBER MEASURES.ZyskKategorii AS (ANCESTOR([KategoriaProduktuH].CURRENTMEMBER, [KategoriaProduktuH].[Nazwa Kategorii]), [Measures].[Zysk]) MEMBER MEASURES.ZyskProcentowy AS ([KategoriaProduktuH].currentmember, [Measures].[Zysk])/ (ANCESTOR([KategoriaProduktuH].CURRENTMEMBER, [KategoriaProduktuH].[Nazwa Kategorii]), [Measures].[Zysk]), FORMAT_STRING = '0.00%' {MEASURES.ZyskKategorii,[Measures].[Zysk], MEASURES.ZyskProcentowy} ON COLUMNS, [KategoriaProduktuH].[nazwa towaru] ON ROWS PARENT może być używane wielokrotnie. W naszym przypadku przeniesie nas już na poziom ALL MEMBER MEASURES.ZyskKategorii AS ([KategoriaProduktuH].CURRENTMEMBER.PARENT. PARENT, [Measures].[Zysk]) MEMBER MEASURES.ZyskProcentowy AS ([KategoriaProduktuH].CURRENTMEMBER, [Measures].[Zysk])/ ([KategoriaProduktuH].CURRENTMEMBER.PARENT.PARENT, [Measures].[Zysk]), FORMAT_STRING = '0.00%' {Measures.ZyskKategorii, [Measures].[Zysk], MEASURES.ZyskProcentowy} ON COLUMNS, [KategoriaProduktuH].[Nazwa Towaru] ON ROWS użycie nazwanych zbiorów i funkcji EXCEPT (odnajduje różnice pomiędzy dwoma zbiorami) umożliwia skonstruowanie wyrażenia, które pokaże procentową sprzedaż dla każdej grupy towarów w porównaniu do całości pomniejszonej o sprzedaż zegarów SET [OproczZegarow] AS EXCEPT([KategoriaProduktuH].[Nazwa Kategorii].MEMBERS, [Towar G].[KategoriaProduktuH].[Nazwa Kategorii].[Clocks]) MEMBER Measures.ProcentSprzedazy AS ([KategoriaProduktuH].CURRENTMEMBER, [Measures].[Zysk]) / SUM([OproczZegarow], [Measures].[Zysk]), FORMAT_STRING = '#.00%' {[Measures].[Zysk], Measures.ProcentSprzedazy} ON COLUMNS, [OproczZegarow] ON ROWS 11

12 Formatowanie warunkowe SET Towary as [KategoriaProduktuH].[Nazwa Kategorii].MEMBERS MEMBER Measures.zakup AS [Measures].[Wartosc], FORMAT_STRING = IIF(zakup>800,'#.00','{#.00)'), fore_color = IIF(zakup>800,RGB(255,0,0), RGB(255,255,0)), back_color = IIF(zakup>800,RGB(0,255,255), RGB(0,155,0)), FONT_FLAGS = IIF(zakup>800,MDFF_BOLD or MDFF_UNDERLINE,MDFF_ITALIC or MDFF_STRIKEOUT), FONT_NAME = IIF(zakup>800,ARIAL,Times), FONT_SIZE = IIF(zakup>800,16,10) Towary ON COLUMNS, [LokalizacjaKlientaH].[Województwo].MEMBERS ON ROWS Nie wszystko działa?!! WHERE Measures.Zakup CELL PROPERTIES VALUE, FORMATTED_VALUE, CELL_ORDINAL, FORMAT_STRING, FORE_COLOR, BACK_COLOR, FONT_FLAGS, FONT_NAME, FONT_SIZE To samo ale z zastosowaniem DESCENDANTS GENERATE([DataFakturyH].[Rok].MEMBERS, {[DataFakturyH].CURRENTMEMBER, DESCENDANTS([DataFakturyH].CURRENTMEMBER, [Data Faktury].[DataFakturyH].[Kwartal])}) ON COLUMNS, [KategoriaProduktuH].[Nazwa Kategorii].members ON ROWS WHERE ([Measures].[Zysk]) Rozpatrzmy zapytanie mające zwracać na osi kolumn informacje o sprzedaży w każdym roku oraz odpowiadające im szczegóły kwartalne. GENERATE([DataFakturyH].[Rok].MEMBERS, {[DataFakturyH].CURRENTMEMBER, [DataFakturyH].CURRENTMEMBER.CHILDREN}) ON COLUMNS, [KategoriaProduktuH].[Nazwa Kategorii].members ON ROWS WHERE ([Measures].[Zysk]) To samo ale z rozbiciem na miesiące GENERATE([DataFakturyH].[Rok].MEMBERS, {[DataFakturyH].CURRENTMEMBER, DESCENDANTS([DataFakturyH].CURRENTMEMBER, [Data Faktury].[DataFakturyH].[Miesiac])}) ON COLUMNS, [KategoriaProduktuH].[Nazwa Kategorii].members ON ROWS WHERE ([Measures].[Zysk]) 12

13 Pokazanie wzrostu w okresie czasu umożliwia funkcja PREVMEMBER. Jeżeli mielibyśmy wyświetlić zysk ze sprzedaży i przyrostową zmianę od poprzedniego członu czasu na poziomie kolejnych miesięcy MEMBER Measures.[wzrost Zysku] AS ([Measures].[Zysk]) - ([Measures].[Zysk],[DataFakturyH].PREVMEMBER), FORMAT_STRING = '###,###.00 ZŁ' {[Measures].[Zysk], Measures.[wzrost Zysku]} ON COLUMNS, {DESCENDANTS([DataFakturyH], [DataFakturyH].[miesiac])} ON ROWS Możemy również użyć funkcji LEAD, która zwraca człon oddalony w wymiarze o określoną liczbę pozycji od wskazanego członu. MEMBER Measures.[wzrost Zysku] AS ([Measures].[Zysk]) - ([Measures].[Zysk],[DataFakturyH]. LEAD)(-2)), FORMAT_STRING = '###,###.00 ZŁ' {[Measures].[Zysk], Measures.[wzrost Zysku]} ON COLUMNS, {DESCENDANTS([DataFakturyH], [DataFakturyH].[miesiac])} ON ROWS Użycie NEXTMEMBER w tym wyrażeniu pokazałoby sprzedaż dla każdego miesiąca zestawioną ze sprzedażami z poprzednich miesięcy. MEMBER Measures.[wzrost Zysku] AS ([Measures].[Zysk]) - ([Measures].[Zysk],[DataFakturyH]. NEXTMEMBER), FORMAT_STRING = '###,###.00 ZŁ' {[Measures].[Zysk], Measures.[wzrost Zysku]} ON COLUMNS, {DESCENDANTS([DataFakturyH], [DataFakturyH].[miesiac])} ON ROWS PARALLELPERIOD pozwala na łatwe porównanie wzrostu ze wzrostem z tego samego przedziału czasu w poprzednim kwartale: MEMBER Measures.[wzrost Zysku] AS ([Measures].[Zysk]) - (Measures.[Zysk], PARALLELPERIOD([DataFakturyH].[Kwartal])), FORMAT_STRING = '###,###.00 ZŁ' {[Measures].[Zysk], Measures.[wzrost Zysku]} ON COLUMNS, {DESCENDANTS([DataFakturyH], [DataFakturyH].[miesiac])} ON ROWS Pojawiają się błędy gdy nie zdefiniowno równoległego miesiąca. Miesiące w obrębie kwartału są wykrywane jako kolejne wystąpienia na liście, niezgodnie z kalendarzem 13

14 Można sprawdzić o ile wzrosła sprzedaż po pierwszym miesiącu sezonu. Używając kwartału do przedstawienia sezonu, można mierzyć różnicę w sprzedaży jednostek dla każdego miesiąca, porównując z miesiącem otwierającym kwartał: MEMBER Measures.[wzrost Zysku] AS ([Measures].[Zysk]) - (Measures.[Zysk], OPENINGPERIOD([DataFakturyH].Miesiac, [DataFakturyH].CURRENTMEMBER.PARENT)), FORMAT_STRING = '###,###.00 ZŁ' {[Measures].[Zysk], Measures.[wzrost Zysku]} ON COLUMNS, {DESCENDANTS([DataFakturyH], [DataFakturyH].[miesiac])} ON ROWS W postaci skróconej można zastosować funkcję YTD() MEMBER Measures.Zysk_YTD AS SUM(YTD(), [Measures].[Zysk]), FORMAT_STRING = '#.00' {[KategoriaTowaruG].[Nazwa Kategorii].MEMBERS} ON Columns, {DESCENDANTS([DataFakturyH], [DataFakturyH].Miesiac)} ON rows WHERE (Measures.Zysk_YTD) OPENINGPERIOD(poziom, człon) CLOSINGINGPERIOD(poziom, człon) Oprócz YTD() istnieją QTD(), MTD() i WTD(). Przy użyciu funkcji SUM i PERIODSTODATE można zdefiniować obliczany człon, który wyświetli informację year-to-date.. Miarą jest suma bieżąca na poziomie roku: PERIODSTODATE([Time].[Year], [Time].CURRENTMEMBER) MEMBER Measures.Zysk_YTD AS SUM(PERIODSTODATE([DataFakturyH].[Rok],[DataFakturyH].CURRENTMEMBER), [Measures].[Zysk]), FORMAT_STRING = '#.00' {[KategoriaTowaruG].[Nazwa Kategorii].MEMBERS} ON Columns, {DESCENDANTS([DataFakturyH], [DataFakturyH].miesiac)} ON rows WHERE (Measures.Zysk_YTD) Przy użyciu funkcji SUM i PERIODSTODATE można zdefiniować obliczany człon, który wyświetli informację Quarter-to-date.. Miarą jest suma bieżąca na poziomie Kwartału: MEMBER Measures.Zysk_QTD AS SUM(PERIODSTODATE([DataFakturyH].[Kwartal],[DataFakturyH].CURRENTMEMB ER), [Measures].[Zysk]), FORMAT_STRING = '#.00' {[KategoriaTowaruG].[Nazwa Kategorii].MEMBERS} ON Columns, {DESCENDANTS([DataFakturyH], [DataFakturyH].miesiac)} ON rows WHERE (Measures.Zysk_QTD) 14

15 To samo przy użyciu funkcji QTD: MEMBER Measures.Zysk_QTD AS SUM(QTD(), [Measures].[Zysk]), FORMAT_STRING = '#.00' {[KategoriaTowaruG].[Nazwa Kategorii].MEMBERS} ON Columns, [DataFakturyH].miesiac ON rows WHERE (Measures.Zysk_QTD) Usuwanie pustych członów z osi możemy osiągnąć przez zastosowanie klauzuli NON EMPTY, [KategoriaTowaruG].[Nazwa Kategorii].MEMBERS ON COLUMNS, NON EMPTY{CROSSJOIN( [Klienci G].[Województwo].MEMBERS, [Data Faktury].[Kwartal].MEMBERS)} ON ROWS WHERE ([Measures].[Zysk]) Przy takiej definicji krotki zapytanie bieżące i z poprzedniej strony zwracają to samo W wielu przypadkach kombinacja członów z różnych wymiarów jest zamknięta w nawiasach. Kombinacja taka znana jest jako krotka (tuplet) i jest wykorzystywana do wyświetlenia wielu wymiarów na jednej osi. [KategoriaTowaruG].[Nazwa Kategorii].MEMBERS ON COLUMNS, {CROSSJOIN( [Klienci G].[Województwo].MEMBERS, [Data Faktury].[Kwartal].MEMBERS)} ON ROWS WHERE ([Measures].[Zysk]) Do filtrowania bardziej szczegółowego, MDX udostępnia funkcję FILTER. Zwraca ona zbiór, który jest wynikiem filtrowania na podstawie określonego warunku. FILTER (zbiór, warunek_wyszukiwania) [KategoriaTowaruG].[Nazwa Kategorii].MEMBERS ON COLUMNS, FILTER({[LokalizacjaKlientaH].[Miasto].MEMBERS}, ([Measures].[Zysk], [DataFakturyH].[All])>500) ON ROWS WHERE ([Measures].[Zysk]) 15

16 Do filtrowania bardziej szczegółowego, MDX udostępnia funkcję FILTER. Zwraca ona zbiór, który jest wynikiem filtrowania na podstawie określonego warunku. FILTER (zbiór, warunek_wyszukiwania) [KategoriaTowaruG].[Nazwa Kategorii].MEMBERS ON COLUMNS, FILTER({[LokalizacjaKlientaH].[Miasto].MEMBERS}, ([Measures].[Zysk], [DataFakturyH].[All])>500) ON ROWS WHERE ([Measures].[Zysk], [DataFakturyH].[Rok].[2003]) Zysk których z produktów spada poniżej średniej dla województwa????? MEMBER [Measures].[ZyskProcentowy] AS ([Measures].[Wartosc]-[Measures].[WartoscZakupu]) / ([Measures].[WartoscZakupu]), FORMAT_STRING = '#.00%' NON EMPTY {[KategoriaTowaruG].[Nazwa Kategorii].MEMBERS} ON COLUMNS, FILTER({[LokalizacjaKlientaH].[Miasto].MEMBERS}, ([Measures].[ZyskProcentowy], [DataFakturyH].[All]) < ([Measures].[ZyskProcentowy], [DataFakturyH].[All], ANCESTOR([LokalizacjaKlientaH].CURRENTMEMBER, [LokalizacjaKlientaH].[Województwo]))) ON ROWS WHERE ([Measures].[ZyskProcentowy], [DataFakturyH].[All]) Filtr dla zysku we wszystkich latach większego niż 500 ale wyświetlono zysk z roku 2003 Jest sens stosowanie NON EMPTY wyeliminowano PABIANICE [KategoriaTowaruG].[Nazwa Kategorii].MEMBERS ON COLUMNS, NON EMPTY(FILTER({[LokalizacjaKlientaH].[Miasto].MEMBERS}, ([Measures].[Zysk], [DataFakturyH].[All])>500)) ON ROWS WHERE ([Measures].[Zysk], [DataFakturyH].[Rok].[2003]) Rozpatrzmy proste zapytanie o miary dla lokalizacji klientów (miasta): [Measures].MEMBERS ON COLUMNS, [LokalizacjaKlientaH].[Miasto].MEMBERS ON ROWS Filtr dla zysku we wszystkich latach większego niż 500 ale wyświetlono zysk z roku

17 Pierwszym wyświetlonym miastem jest Bydgoszcz etc... Naturalna kolejność nie jest zbyt widoczna ponieważ nie znamy członu z poziomu rodzica. Jeśli bylibyśmy zainteresowani miastami wylistowanymi między Kutno a Czersk musielibyśmy napisać: [Measures].MEMBERS ON COLUMNS, [LokalizacjaKlientaH].[Miasto].[KUTNO]:[CZERSK] ON ROWS Sortowanie wyników ORDER(zbiór, wyrażenie [, ASC DESC BASC BDESC]) Brak prefiksu B wskazuje, że hierarchiczny porządek nie może zostać rozbity. [Measures].MEMBERS ON COLUMNS, ORDER([LokalizacjaKlientaH].[Miasto].[KUTNO]:[CZERSK], [LokalizacjaKlientaH].CURRENTMEMBER.NAME, ASC) ON ROWS Sortowanie wyników ORDER(zbiór, wyrażenie [, ASC DESC BASC BDESC]) Prefiks B wskazuje, że hierarchiczny porządek może zostać rozbity. [Measures].MEMBERS ON COLUMNS, ORDER([LokalizacjaKlientaH].[Miasto].[KUTNO]:[CZERSK], [LokalizacjaKlientaH].CURRENTMEMBER.NAME, BASC) ON ROWS Dość często bieżące sortowanie jest oparte o aktualną miarę. Zapytamy o informacje sprzedaży w miastach, uporządkowaną według efektywności sprzedaży: [Measures].MEMBERS ON COLUMNS, ORDER([LokalizacjaKlientaH].[Miasto].MEMBERS, [Measures].[Wartosc], DESC) ON ROWS W przykładzie tym sortowanie odbyło się po właściwości Name. Zwraca on nazwę poziomu, wymiaru, członu, lub hierarchii. Istnieje podobna właściwość UniqueName zwracająca odpowiednią unikalną nazwę. 17

18 Dość często bieżące sortowanie jest oparte o aktualną miarę. Zapytamy o informacje sprzedaży w miastach, uporządkowaną według efektywności sprzedaży: [Measures].MEMBERS ON COLUMNS, ORDER([LokalizacjaKlientaH].[Miasto].MEMBERS, [Measures].[Wartosc], BDESC) ON ROWS TOPCOUNT zwraca ze zbioru n najlepszych na podstawie podanego wyrażenia wyników. TOPCOUNT(zbiór, n, wyrażenie_numeryczne) Poprzednie wyrażenie możemy zatem przepisać: [Measures].MEMBERS ON COLUMNS, TOPCOUNT([LokalizacjaKlientaH].[Miasto].MEMBERS, 10, [Measures].[Wartosc]) ON ROWS Bez rozbicia wynikającego z hierarchii HEAD funkcja zwracająca pierwszych n członów z podanego zbioru. Podobnie TAIL zwraca n ostatnich członów z podanego zbioru. Ograniczmy zakres wyświetlanych miast do 10 najbardziej wydajnych: [Measures].MEMBERS ON COLUMNS, HEAD(ORDER([LokalizacjaKlientaH].[Miasto].MEMBERS, [Measures].[Wartosc], BDESC), 10) ON ROWS Zapytanie MDX, które wyświetla górne 10 miast, w oparciu o ilość transakcji sprzedaży, oraz jak dużo sprzedały łącznie pozostałe miasta. Takie wyrażenie pokaże także inne zastosowanie funkcji SUM, nawiązujące do nazwanych zbiorów i obliczanych członów: SET TopTens AS TOPCOUNT([LokalizacjaKlientaH].[Miasto].MEMBERS, 10, [Measures].[Ilosc]) MEMBER [LokalizacjaKlientaH].[Inne Miasta] AS ([LokalizacjaKlientaH].[All], Measures.CURRENTMEMBER) - SUM(TopTens, Measures.CURRENTMEMBER) [Measures].MEMBERS ON COLUMNS, {TopTens, [Inne Miasta]} ON ROWS Istnieje również TOPPERCENT, TOPSUM Oczywiście istnieje seria funkcji BOTTOM 18

19 Wyświetlanie listy miast, których ilość transakcji sprzedaży obejmuje 50% całości sprzedaży: [Measures].MEMBERS ON COLUMNS, TOPPERCENT({[Klienci G].[LokalizacjaKlientaH].[Miasto].MEMBERS}, 50, [Measures].[Ilosc]) ON ROWS rozkład ilości sprzedaży dla typów sklepów: [Nazwa Kategorii].MEMBERS ON COLUMNS, TOPPERCENT({[LokalizacjaKlientaH].[Miasto].MEMBERS}, 50, [Measures].[Ilosc]) ON ROWS WHERE [Measures].[Ilosc] Wyświetlanie listy 50% osób, których zarobki w roku 2004 były najwyższe Zastosowanie TOPSUM TOPPERCENT ([Osoby G].[Pracownik].[Pracownik].members, 50, ([Measures].[Brutto], [Data Zarobki].[Rok].[2004])) ON ROWS, {[Data Zarobki].[Rok].[2004]} ON COLUMNS FROM ZarobkiG MEMBER [Data Faktury].[Rok].[ ] AS ([Measures].[Wartosc], [Data Faktury].[Rok].[2002]) + ([Measures].[Wartosc], [Data Faktury].[Rok].[2003]) {[Data Faktury].[Rok].[2002], [Data Faktury].[Rok].[2003], [Data Faktury].[Rok].[ ]} ON COLUMNS, TOPSUM([Towar G].[Nazwa Towaru].[Nazwa Towaru].members, 10000, [Data Faktury].[Rok].[ ]) ON ROWS FROM BiznesG WHERE [Measures].[Wartosc] 19

20 Funkcje statystyczne AVG, MEDIAN, MAX, MIN, VAR oraz STDDEV. Format jest jednakowy dla wszystkich: FUNKCJA(zbiór, wyrażenie_numeryczne) MEMBER [DataFakturyH].[SredniaSprzedaz] AS AVG(DESCENDANTS([DataFakturyH].[Rok], [DataFakturyH].[Miesiac])) MEMBER [DataFakturyH].[SredniaIlosc] AS COUNT(DESCENDANTS([DataFakturyH].[Rok], [DataFakturyH].[Miesiac]),EXCLUDEEMPTY) {[DataFakturyH].[Rok],[SredniaSprzedaz],[SredniaIlosc]} ON COLUMNS, [KategoriaTowaruG].[Nazwa Kategorii] ON ROWS WHERE [Measures].[Ilosc] Jeśli zapytanie ma zwracać wzrost procentowy MEMBER Measures.[WzrostZysku] AS ([Measures].[Zysk]) / ([Measures].[Zysk], [DataFakturyH].PREVMEMBER), FORMAT_STRING = '#.00%' {[Measures].[Zysk], [WzrostZysku] } ON COLUMNS, DESCENDANTS([DataFakturyH].[Rok], [DataFakturyH].[Miesiac]) ON ROWS Problemem - pierwszy okres czasu powoduje dzielenie przez zero... Funkcje te, zwane user-defined functions (UDF) mogą przyjmować argumenty i zwracać wartości w składni MDX. UDF mogą być tworzone w dowolnym języku wspomagającym COM (Common Object Model), Na dodatek, MDX obsługuje wiele funkcji z biblioteki Microsoft Visual Basic for Applications (VBA) Expression Services. Biblioteka ta jest dołączona do OLAP Services i jest automatycznie rejestrowana. Możemy zapytać o miary dla miasta, gdzie wartość zawiera łańcuch KA : Measures.MEMBERS ON COLUMNS, FILTER({[LokalizacjaKlientaH].[Miasto].MEMBERS}, VBA!INSTR(1, [Miasto].CURRENTMEMBER.Name, "KA")>0) ON ROWS Ten problem może zostać w omnięty przez użycie IIF i sprawdzenie istnienia pustej komórki: MEMBER Measures.[WzrostZysku] AS IIF( ISEMPTY([DataFakturyH].PREVMEMBER), 1, ([Measures].[Zysk]) / ([Measures].[Zysk], [DataFakturyH].PREVMEMBER)), FORMAT_STRING = '#.00%' {[Measures].[Zysk], [WzrostZysku] } ON COLUMNS, DESCENDANTS([DataFakturyH].[Rok], [DataFakturyH].[Miesiac]) ON ROWS Prefiks VBA nie jest potrzebny. Wskazuje jedynie pełnokwalifikowane pochodzenie funkcji. 20

21 Taka sama funkcjonalność może być osiągnięta przy użyciu funkcji COALESCEEMPTY, która przypisuje pustej wartości komórki liczbę lub łańcuch i go zwraca. W tym przypadku, pusta komórka z poprzedniego członu czasu, byłaby zastąpiona wartością bieżącym członem czasu: MEMBER Measures.[WzrostZysku] AS ([Measures].[Zysk]) / COALESCEEMPTY(([Measures].[Zysk], [DataFakturyH].PREVMEMBER),[Measures].[Zysk]), FORMAT_STRING = '#.00%' {[Measures].[Zysk], [WzrostZysku] } ON COLUMNS, DESCENDANTS([DataFakturyH].[Rok], [DataFakturyH].[Miesiac]) ON ROWS Średnia bieżąca - CENTRALNA MEMBER Measures.SredniaBiezaca AS AVG({[Miesiac].CURRENTMEMBER, [Miesiac].PREVMEMBER, [Miesiac].NEXTMEMBER},[Measures].[Wartosc]), FORMAT_STRING = '#.00 zł' [KategoriaProduktuH].[Nazwa Kategorii].[THAN] ON COLUMNS, [DataFakturyH].[Miesiac].MEMBERS ON ROWS WHERE Measures.SredniaBiezaca Średnia dla miast dla wybranych województw za lata 2001 do 2004 MEMBER [Measures].[lubelskie AVG] AS AVG({[Klienci G].[lubelskie].CHILDREN},[Measures].[Wartosc]) MEMBER [Measures].[łódzkie AVG] AS AVG({[Klienci G].[łódzkie].CHILDREN},[Measures].[Wartosc]) MEMBER [Measures].[pomorskie AVG] AS AVG({[Klienci G].[pomorskie].CHILDREN},[Measures].[Wartosc]) {([Measures].[lubelskie AVG]), ([Measures].[łódzkie AVG]), ([Measures].[pomorskie AVG])} ON COLUMNS, {([Data Faktury].[2001]:[2003])} ON ROWS FROM BiznesG Średnia bieżąca - WSTECZNA MEMBER Measures.SredniaBiezaca AS AVG({[Miesiac].CURRENTMEMBER, [Miesiac].PREVMEMBER, [Miesiac].PREVMEMBER.PREVMEMBER},[Measures].[Wartosc]), FORMAT_STRING = '#.00 zł' [KategoriaProduktuH].[Nazwa Kategorii].[THAN] ON COLUMNS, [DataFakturyH].[Miesiac].MEMBERS ON ROWS WHERE Measures.SredniaBiezaca 21

przygotował: pawel@kasprowski.pl Podstawy języka MDX Tworzenie zbiorów

przygotował: pawel@kasprowski.pl Podstawy języka MDX Tworzenie zbiorów Podstawy języka MDX Tworzenie zbiorów Używanie zbiorów Zbiór to: wynik działania funkcji (np. funkcji members) lista elementów otoczona {...} {[Store Sales], [Unit Sales]} on columns, [Product].[Prod].[Category].members

Bardziej szczegółowo

Integracja i Eksploracja Danych

Integracja i Eksploracja Danych Integracja i Eksploracja Danych Laboratorium nr 4 Wprowadzenie do języka MDX. Zadania: 1) Analogicznie do przykładu zawartego na poprzednich zajęciach, korzystając z SQL Server Business Intelligence Development

Bardziej szczegółowo

MDX ZAWARTOŚĆ O MDX. Wyk onał: Zatwi erdził: KSPBC_Szkolenie_20090623. doc. Spra wdził: Strona 1 z 15

MDX ZAWARTOŚĆ O MDX. Wyk onał: Zatwi erdził: KSPBC_Szkolenie_20090623. doc. Spra wdził: Strona 1 z 15 ZAWARTOŚĆ Zawartość...1 O...1 Podstawowe typy danych...2 1.1. Wymiar / hierarhia...2 1.2. Poziom...2 1.3. Element...2 1.4. Kolekcje (Tuples)...2 1.5. Zbiory (Sets)...2 1.6. Osie (Axes)...2 Pierwsze zapytanie...3

Bardziej szczegółowo

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Systemy OLAP I Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr zimowy 2008/09 Studia

Bardziej szczegółowo

OnLine Analytical Processing (OLAP) Kostki OLAP i zapytania MDX

OnLine Analytical Processing (OLAP) Kostki OLAP i zapytania MDX OnLine Analytical Processing (OLAP) Kostki OLAP i zapytania MDX 24 kwietnia 2014 Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą

Bardziej szczegółowo

Krzysztof Dembczyński. Inteligentne Systemy Wspomagania Decyzji Studia magisterskie, semestr I Semestr letni 2007/08

Krzysztof Dembczyński. Inteligentne Systemy Wspomagania Decyzji Studia magisterskie, semestr I Semestr letni 2007/08 Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Inteligentne Systemy Wspomagania Decyzji Studia magisterskie, semestr I Semestr letni

Bardziej szczegółowo

Analityczny język zapytań MDX: zaawansowane

Analityczny język zapytań MDX: zaawansowane ITA-102 Hurtownie Danych Moduł 8 Wersja 1.0 Spis treści Analityczny język zapytań MDX: zaawansowane Analityczny język zapytań MDX: zaawansowane... 1 Informacje o module... 2 Przygotowanie teoretyczne...

Bardziej szczegółowo

Funkcjonalność języka MDX w implementacji HYPERION

Funkcjonalność języka MDX w implementacji HYPERION Funkcjonalność języka MDX w implementacji HYPERION Paweł Kędziora, Marek Lewandowski Politechnika Poznańska pawel.kedziora@gmail.com, lewandowski.marek@gmail.com Spis Treści: 1 Standard MDX... 2 2 Postać

Bardziej szczegółowo

Nauczycielem wszystkiego jest praktyka Juliusz Cezar. Nauka to wiara w ignorancję ekspertów Richard Feynman

Nauczycielem wszystkiego jest praktyka Juliusz Cezar. Nauka to wiara w ignorancję ekspertów Richard Feynman Oracle i DB2 zadanie współfinansowane przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej

Bardziej szczegółowo

Analityczny język zapytań MDX: podstawy

Analityczny język zapytań MDX: podstawy ITA-102 Hurtownie Danych Moduł 7 Wersja 1.0 Spis treści Analityczny język zapytań MDX: podstawy Analityczny język zapytań MDX: podstawy... 1 Informacje o module... 2 Przygotowanie teoretyczne... 4 Podstawy

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawowe zapytania SELECT (na jednej tabeli) Podstawowe zapytania SELECT (na jednej tabeli) Struktura polecenia SELECT SELECT opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje FROM nazwy tabel lub widoków WHERE warunek (wybieranie wierszy) GROUP

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 8b: Algebra relacyjna http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2009/tpi-2009 Prof. dr hab. Elżbieta Richter-Wąs 1 Algebra relacyjna Algebra relacyjna (ang.

Bardziej szczegółowo

Kostki OLAP i język MDX

Kostki OLAP i język MDX Kostki OLAP i język MDX 24 kwietnia 2015 r. Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie składały różne rodzaje zadań,

Bardziej szczegółowo

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL ORACLE System Zarządzania Bazą Danych Oracle Oracle Advanced SQL wersja 1.0 Politechnika Śląska 2008 Raportowanie z wykorzystaniem fraz rollup, cube Frazy cube, rollup, grouping sets umożliwiają rozszerzoną

Bardziej szczegółowo

Microsoft Excel 2013: Budowanie modeli danych przy użyciu PowerPivot

Microsoft Excel 2013: Budowanie modeli danych przy użyciu PowerPivot Microsoft Excel 2013: Budowanie modeli danych przy użyciu PowerPivot Alberto Ferrari i Marco Russo Przekład: Marek Włodarz APN Promise Warszawa 2014 Spis treści Wprowadzenie............................................................

Bardziej szczegółowo

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr zimowy 2007/08 Studia uzupełniajace magisterskie

Bardziej szczegółowo

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

Bardziej szczegółowo

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Przykładowa RBD o schematach relacji (tzw. płaska postać RBD): N(PRACOWNICY) = {ID_P, IMIĘ,

Bardziej szczegółowo

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji 6. Język SQL Język SQL (Structured Query Language): - język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji - stworzony w IBM w latach 70-tych DML (Data Manipulation

Bardziej szczegółowo

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Iloczyn kartezjański, połączenie równościowe, połączenie nierównościowe, połączenie zwrotne, połączenie zewnętrzne, składnia jawna połączeń, składnia

Bardziej szczegółowo

Wprowadzenie do języka SQL

Wprowadzenie do języka SQL Wprowadzenie do języka SQL język dostępu do bazy danych grupy poleceń języka: DQL (ang( ang.. Data Query Language) DML (ang( ang.. Data Manipulation Language) DDL (ang( ang.. Data Definition Language)

Bardziej szczegółowo

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2) Laboratorium nr 8 Temat: Podstawy języka zapytań SQL (część 2) PLAN LABORATORIUM: 1. Sortowanie. 2. Warunek WHERE 3. Eliminacja powtórzeń - DISTINCT. 4. WyraŜenia: BETWEEN...AND, IN, LIKE, IS NULL. 5.

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Bazy danych Access KWERENDY

Bazy danych Access KWERENDY Bazy danych Access KWERENDY Obiekty baz danych Access tabele kwerendy (zapytania) formularze raporty makra moduły System baz danych MS Access Tabela Kwerenda Formularz Raport Makro Moduł Wyszukiwanie danych

Bardziej szczegółowo

Język SQL. Rozdział 2. Proste zapytania

Język SQL. Rozdział 2. Proste zapytania Język SQL. Rozdział 2. Proste zapytania Polecenie SELECT, klauzula WHERE, operatory SQL, klauzula ORDER BY. 1 Wprowadzenie do języka SQL Język dostępu do bazy danych. Język deklaratywny, zorientowany na

Bardziej szczegółowo

Wprowadzenie do hurtowni danych

Wprowadzenie do hurtowni danych Wprowadzenie do hurtowni danych przygotował: Paweł Kasprowski Kostka Kostka (cube) to podstawowy element hurtowni Kostka jest wielowymiarowa (od 1 do N wymiarów) Kostka składa się z: faktów wektora wartości

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

TP1 - TABELE PRZESTAWNE od A do Z

TP1 - TABELE PRZESTAWNE od A do Z TP1 - TABELE PRZESTAWNE od A do Z Program szkolenia 1. Tabele programu Excel 1.1. Wstawianie tabeli 1.2. Style tabeli 1.3. Właściwości tabeli 1.4. Narzędzia tabel 1.4.1. Usuń duplikaty 1.4.2. Konwertuj

Bardziej szczegółowo

SQL - Structured Query Language. strukturalny język zapytań

SQL - Structured Query Language. strukturalny język zapytań SQL - Structured Query Language strukturalny język zapytań SQL - Structured Query Language - strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w

Bardziej szczegółowo

SQL praca z tabelami 4. Wykład 7

SQL praca z tabelami 4. Wykład 7 SQL praca z tabelami 4 Wykład 7 1 Funkcje agregujące Informacja poszukiwana w bazie danych często musi być wyliczana na podstawie danych znajdujących się w wielu wierszach tabeli. Tak jest gdy chcemy znać

Bardziej szczegółowo

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Plan wykładu Bazy danych Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Deficja zależności funkcyjnych Klucze relacji Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Podstawy języka SQL cz. 2

Podstawy języka SQL cz. 2 Podstawy języka SQL cz. 2 1. Operatory zbiorowe a. UNION suma zbiorów z eliminacją powtórzeń, b. EXCEPT różnica zbiorów z eliminacją powtórzeń, c. INTERSECT część wspólna zbiorów z eliminacją powtórzeń.

Bardziej szczegółowo

OLAP i hurtownie danych c.d.

OLAP i hurtownie danych c.d. OLAP i hurtownie danych c.d. Przypomnienie OLAP -narzędzia analizy danych Hurtownie danych -duże bazy danych zorientowane tematycznie, nieulotne, zmienne w czasie, wspierjące procesy podejmowania decyzji

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

Ćwiczenie zapytań języka bazy danych PostgreSQL

Ćwiczenie zapytań języka bazy danych PostgreSQL Ćwiczenie zapytań języka bazy danych PostgreSQL 1. Uruchom link w przeglądarce: http://127.0.0.1/phppgadmin 2. Kliknij w zaznaczony na czerwono link PostgreSQL: 3. Zaloguj się wpisując hasło i login student.

Bardziej szczegółowo

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING. Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING. 1 Funkcje grupowe (agregujące) (1) Działają na zbiorach rekordów, nazywanych grupami. Rekordy

Bardziej szczegółowo

System imed24 Instrukcja Moduł Analizy i raporty

System imed24 Instrukcja Moduł Analizy i raporty System imed24 Instrukcja Moduł Analizy i raporty Instrukcja obowiązująca do wersji 1.8.0 Spis treści 1. Moduł Analizy i Raporty... 3 1.1. Okno główne modułu Analizy i raporty... 3 1.1.1. Lista szablonów

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25 MS Excel 2007 Kurs zaawansowany Obsługa baz danych prowadzi: Dr inż. Tomasz Bartuś Kraków: 2008 04 25 Bazy danych Microsoft Excel 2007 udostępnia szereg funkcji i mechanizmów obsługi baz danych (zwanych

Bardziej szczegółowo

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

Bazy danych SQL Server 2005

Bazy danych SQL Server 2005 Bazy danych SQL Server 2005 TSQL Michał Kuciapski Typ zadania: Podstawowe zapytania Select Zadanie 1: Wyświetl następujące informacje z bazy: A. 1. Wyświetl informacje o klientach: nazwa firmy, imie, nazwisko,

Bardziej szczegółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

Excel 2016 PL w biurze i nie tylko / Sergiusz Flanczewski. Gliwice, cop Spis treści

Excel 2016 PL w biurze i nie tylko / Sergiusz Flanczewski. Gliwice, cop Spis treści Excel 2016 PL w biurze i nie tylko / Sergiusz Flanczewski. Gliwice, cop. 2016 Spis treści Rozdział 1. Podstawowe informacje o obsłudze arkusza kalkulacyjnego 9 Uruchamianie i zamykanie programu 9 Wstążka

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

SQL do zaawansowanych analiz danych część 1.

SQL do zaawansowanych analiz danych część 1. SQL do zaawansowanych analiz danych część 1. Mechanizmy języka SQL dla agregacji danych Rozszerzenia PIVOT i UNPIVOT Materiały wykładowe Bartosz Bębel Politechnika Poznańska, Instytut Informatyki Plan

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING Agregacja w SQL 1 Bazy Danych Wykład p.t. Agregacja i Grupowanie Danych Funkcje Agregacji. Opcje GROUP BY oraz HAVING Antoni Ligęza ligeza@agh.edu.pl http://galaxy.uci.agh.edu.pl/~ligeza Wykorzystano materiały:

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

Bardziej szczegółowo

Formularze i raporty w MS Access

Formularze i raporty w MS Access Katedra Informatyki i Automatyki Politechnika Rzeszowska www.kia.prz-rzeszow.pl Formularze i raporty w MS Access I. Formularze Formularze Access mają wiele zastosowań. Przede wszystkim używa się ich do

Bardziej szczegółowo

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Złączenie definicja Złączenie (JOIN) to zbiór rekordów stanowiących wynik zapytania służącego pobraniu danych z połączonych tabel (związki jeden-do-jeden, jeden-do-wiele

Bardziej szczegółowo

MJUP_Instrukcja obsługi aplikacji. wspomagającej

MJUP_Instrukcja obsługi aplikacji. wspomagającej Instrukcja obsługi aplikacji wspomagającej w ramach projektu Beneficjent: Urząd Miasta Krakowa Wersja: 1.00 Data wersji: 2015-02-24 Autor (rzy): Nazwa pliku: Zespół Pentacomp MJUP_Instrukcja obsługi aplikacji

Bardziej szczegółowo

Plan. Wyświetlanie n początkowych wartości (TOP n) Użycie funkcji agregujących. Grupowanie danych - klauzula GROUP BY

Plan. Wyświetlanie n początkowych wartości (TOP n) Użycie funkcji agregujących. Grupowanie danych - klauzula GROUP BY Plan Wyświetlanie n początkowych wartości (TOP n) Użycie funkcji agregujących Grupowanie danych - klauzula GROUP BY Generowanie wartości zagregowanych Użycie klauzul COMPUTE i COMPUTE BY Wyświetlanie początkowych

Bardziej szczegółowo

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.

Bardziej szczegółowo

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , , Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi

Bardziej szczegółowo

Modele danych - wykład V. Zagadnienia. 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie fajne WPROWADZENIE

Modele danych - wykład V. Zagadnienia. 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie fajne WPROWADZENIE Modele danych - wykład V Paweł Skrobanek, C-3 pok. 321 pawel.skrobanek@pwr.wroc.pl oprac. Wrocław 2006 Zagadnienia 1. Wprowadzenie 2. MOLAP modele danych 3. modele danych 4. Podsumowanie 5. Zadanie fajne

Bardziej szczegółowo

Program szkoleniowy. 16 h dydaktycznych (12 h zegarowych) NAZWA SZCZEGÓŁY CZAS. Skróty do przeglądania arkusza. Skróty dostępu do narzędzi

Program szkoleniowy. 16 h dydaktycznych (12 h zegarowych) NAZWA SZCZEGÓŁY CZAS. Skróty do przeglądania arkusza. Skróty dostępu do narzędzi Program szkoleniowy Microsoft Excel Poziom Średniozaawansowany 16 h dydaktycznych (12 h zegarowych) NAZWA SZCZEGÓŁY CZAS 1. Skróty klawiszowe Skróty do poruszania się po arkuszu Skróty do przeglądania

Bardziej szczegółowo

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra Bazy danych 8. Podzapytania i grupowanie P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2009 Podzapytania Podzapytania pozwalaja na tworzenie strukturalnych podzapytań, co umożliwia izolowanie poszczególnych

Bardziej szczegółowo

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee Polecenie SELECT instrukcja pobierająca dane z bazy danych (z tabel, widoków) użytkownik posługujący się nią musi mieć uprawnienia do pobierania danych wynikiem zapytania jest zawsze tablica o określonych

Bardziej szczegółowo

Laboratorium Bazy danych SQL 2

Laboratorium Bazy danych SQL 2 Klauzula order by występuje jako ostatnia klauzula w poleceniu select, powoduje posortowanie wierszy będących wynikiem zapytania według wartości atrybutu w niej wskazanego. Domyślnie sortowanie jest według

Bardziej szczegółowo

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe Relacyjny model danych Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe Charakterystyka baz danych Model danych definiuje struktury danych operacje ograniczenia integralnościowe

Bardziej szczegółowo

Konstruowanie Baz Danych DQL agregacja danych

Konstruowanie Baz Danych DQL agregacja danych Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

Tablice. Jones Stygar na tropie zmiennych

Tablice. Jones Stygar na tropie zmiennych Tablice Jones Stygar na tropie zmiennych Czym jest tablica? Obecnie praktycznie wszystkie języki programowania obsługują tablice. W matematyce odpowiednikiem tablicy jednowymiarowej jest ciąg (lub wektor),

Bardziej szczegółowo

Autor: dr inż. Katarzyna Rudnik

Autor: dr inż. Katarzyna Rudnik Bazy danych Wykład 2 MS Access Obiekty programu, Reprezentacja danych w tabeli, Indeksy, Relacje i ich sprzężenia Autor: dr inż. Katarzyna Rudnik Obiekty programu MS ACCESS Obiekty typu Tabela są podstawowe

Bardziej szczegółowo

Hurtownie danych. Projektowanie hurtowni: modele wielowymiarowe. Modelowanie punktowe. Operacje OLAP na kostkach. http://zajecia.jakubw.

Hurtownie danych. Projektowanie hurtowni: modele wielowymiarowe. Modelowanie punktowe. Operacje OLAP na kostkach. http://zajecia.jakubw. Hurtownie danych Projektowanie hurtowni: modele wielowymiarowe. Modelowanie punktowe. Operacje OLAP na kostkach. http://zajecia.jakubw.pl/hur UZASADNIENIE BIZNESOWE Po co nam hurtownia danych? Jakie mogą

Bardziej szczegółowo

Ćwiczenie 3 funkcje agregujące

Ćwiczenie 3 funkcje agregujące Ćwiczenie 3 funkcje agregujące Funkcje agregujące, klauzule GROUP BY, HAVING Ćwiczenie 3 funkcje agregujące Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL

Bardziej szczegółowo

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe 1. Wyselekcjonować firmy z Wrocławia lub Krakowa, którym Nasza firma sprzedała cokolwiek w sierpniu 1992 (użyj funkcji Year i Month). SELECT DISTINCT FIRMY.Nr,

Bardziej szczegółowo

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL ORACLE System Zarządzania Bazą Danych Oracle Oracle Advanced SQL wersja 1.0 Politechnika Śląska 2008 Plan laboratorium Frazy SQL: group by, rollup, cube, grouping sets funkcje analityczne, budowa modeli

Bardziej szczegółowo

Spis treści. Część I Wprowadzenie do pakietu oprogramowania Analysis Services

Spis treści. Część I Wprowadzenie do pakietu oprogramowania Analysis Services Spis treści Wstęp... ix Odkąd najlepiej rozpocząć lekturę?... ix Informacja dotycząca towarzyszącej ksiąŝce płyty CD-ROM... xi Wymagania systemowe... xi Instalowanie i uŝywanie plików przykładowych...

Bardziej szczegółowo

140, , ,000 80, ROK

140, , ,000 80, ROK 140,000 PRODUKCJA 120,000 100,000 80,000 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 2012 ROK 130,000 120,000 PRODUKCJA 110,000 100,000 90,000 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008

Bardziej szczegółowo

Analityczny język zapytań MDX: wstęp

Analityczny język zapytań MDX: wstęp Moduł 6 Wersja 1.0 Spis treści Analityczny język zapytań MDX: wstęp Analityczny język zapytań MDX: wstęp... 1 Informacje o module... 2 Przygotowanie teoretyczne... 3 Podstawy teoretyczne... 3 Porady praktyczne...

Bardziej szczegółowo

etrader Pekao Podręcznik użytkownika Portfel inwestycyjny

etrader Pekao Podręcznik użytkownika Portfel inwestycyjny etrader Pekao Podręcznik użytkownika Portfel inwestycyjny Spis treści 1. Okno Portfel... 3 1.1. Poziomy pasek zarządzania... 3 1.1.1. Lista rachunków... 4 1.1.2. Filtry... 4 1.1.3. Lista walut... 4 1.2.

Bardziej szczegółowo

Część I Istota analizy biznesowej a Analysis Services

Część I Istota analizy biznesowej a Analysis Services Spis treści Część I Istota analizy biznesowej a Analysis Services 1 Analiza biznesowa: podstawy analizy danych... 3 Wprowadzenie do analizy biznesowej... 3 Wielowymiarowa analiza danych... 5 Atrybuty w

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne. LINQ w Microsoft Visual Basic 'zapytanie pobierające wszystkie liczby z kolekcji 'zmienna zapytanie jest typu: System.Collections.Generic.IEnumerable(Of Integer) Dim zapytanie = From wiersz In liczby 'lub

Bardziej szczegółowo

Bazy danych wykład trzeci. Konrad Zdanowski

Bazy danych wykład trzeci. Konrad Zdanowski SQL - przypomnienie Podstawowa forma kwerendy SQL: select A1,..., Ak from R1,..., Rn where ; Odpowiada jej w algebrze relacji operacja π A1,...,Ak (σ (R1 Rn)) SQL semantyka select R.

Bardziej szczegółowo

Kwerenda. parametryczna, z polem wyliczeniowym, krzyżowa

Kwerenda. parametryczna, z polem wyliczeniowym, krzyżowa Kwerenda parametryczna, z polem wyliczeniowym, krzyżowa Operatory stosowane w wyrażeniach pól wyliczeniowych Przykład: wyliczanie wartości w kwerendach W tabeli Pracownicy zapisano wartości stawki godzinowej

Bardziej szczegółowo

SQL Server Analysis Services Procedury składowane. Grzegorz Stolecki

SQL Server Analysis Services Procedury składowane. Grzegorz Stolecki Media Partners SQL Server Analysis Services Procedury składowane Grzegorz Stolecki O mnie Konsultant w JCommerce S.A. Trener w Centrum Szkoleniowym COMARCH S.A. Freelancer Gun for Hire ;-) Microsoft MVP

Bardziej szczegółowo

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET MIL GEN 2.7-1 MIL GEN 2.7 WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET OBLICZANIE CZASÓW WSCHODU I ZACHODU SŁOŃCA 1. Tabele wschodu i zachodu słońca dla lotniska EPWA oraz tabela poprawek zostały opracowane

Bardziej szczegółowo

Hurtownie danych. Przetwarzanie zapytań. http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU

Hurtownie danych. Przetwarzanie zapytań. http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU Hurtownie danych Przetwarzanie zapytań. Jakub Wróblewski jakubw@pjwstk.edu.pl http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU Magazyny danych operacyjnych, źródła Centralna hurtownia danych Hurtownie

Bardziej szczegółowo

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Grupa A (LATARNIE) Imię i nazwisko: Numer albumu: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Nazwisko prowadzącego: 11: 12: Suma: Ocena: Zad. 1 (10 pkt) Dana jest relacja T. Podaj wynik poniższego zapytania (podaj

Bardziej szczegółowo

Wprowadzenie do Hurtowni Danych. Mariusz Rafało

Wprowadzenie do Hurtowni Danych. Mariusz Rafało Wprowadzenie do Hurtowni Danych Mariusz Rafało mrafalo@sgh.waw.pl WARSTWA PREZENTACJI HURTOWNI DANYCH Wykorzystanie hurtowni danych - aspekty Analityczne zbiory danych (ADS) Zbiór danych tematycznych (Data

Bardziej szczegółowo

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie

Bardziej szczegółowo

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET AIP VFR POLAND VFR GEN 3.2-1 VFR GEN 3.2 WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET OBLICZANIE CZASÓW WSCHODU I ZACHODU SŁOŃCA 1. Tabele wschodu i zachodu słońca dla lotniska EPWA oraz tabela poprawek zostały

Bardziej szczegółowo

Symfonia Produkcja. Kreator raportów. Wersja 2013

Symfonia Produkcja. Kreator raportów. Wersja 2013 Symfonia Produkcja Kreator raportów Wersja 2013 Windows jest znakiem towarowym firmy Microsoft Corporation. Adobe, Acrobat, Acrobat Reader, Acrobat Distiller są zastrzeżonymi znakami towarowymi firmy Adobe

Bardziej szczegółowo

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET AIP VFR POLAND VFR GEN 3.2-1 VFR GEN 3.2 WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET OBLICZANIE CZASÓW WSCHODU I ZACHODU SŁOŃCA 1. Tabele wschodu i zachodu słońca dla lotniska EPWA oraz tabela poprawek zostały

Bardziej szczegółowo

Modele danych - wykład V

Modele danych - wykład V Modele danych - wykład V Paweł Skrobanek, C-3 pok. 323 pawel.skrobanek@pwr.wroc.pl oprac. Wrocław 2006 Zagadnienia 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie

Bardziej szczegółowo

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS. Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS. 1 Podzapytania Podzapytanie jest poleceniem SELECT zagnieżdżonym

Bardziej szczegółowo

SQL do zaawansowanych analiz danych część 2.

SQL do zaawansowanych analiz danych część 2. SQL do zaawansowanych analiz danych część 2. Funkcje analityczne Materiały wykładowe Bartosz Bębel Politechnika Poznańska, Instytut Informatyki Plan wykładu 1. Podstawowe definicje. 2. Sposób działania

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

Zaokrąglanie liczb Adresowanie względne i bezwzględne Automatyczne podejmowanie decyzji Porządkowanie tabeli danych

Zaokrąglanie liczb Adresowanie względne i bezwzględne Automatyczne podejmowanie decyzji Porządkowanie tabeli danych Dodatkowe możliwości arkusza kalkulacyjnego Zaokrąglanie liczb Adresowanie względne i bezwzględne Automatyczne podejmowanie decyzji Porządkowanie tabeli danych Zaokrąglanie liczb Stosowanie formatów liczbowych,

Bardziej szczegółowo

Struktura drzewa w MySQL. Michał Tyszczenko

Struktura drzewa w MySQL. Michał Tyszczenko Struktura drzewa w MySQL Michał Tyszczenko W informatyce drzewa są strukturami danych reprezentującymi drzewa matematyczne. W naturalny sposób reprezentują hierarchię danych toteż głównie do tego celu

Bardziej szczegółowo