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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

- 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

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

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

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

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

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

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

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

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

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 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

Ć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

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

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

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

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

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

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

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

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

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

Ć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

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

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

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

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

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

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

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

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

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

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

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

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL jest językiem deklaratywnym tj. takim, w którym istotne

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

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

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

Kwerendy (zapytania) wybierające

Kwerendy (zapytania) wybierające Access 2. Kwerendy (zapytania) wybierające Kwerendy wybierające (nazywane też zapytaniami wybierającymi) są podstawowymi obiektami w MS Access służącymi do wyszukiwania danych w tabelach. W wyniku uruchomienia

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

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

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET AIP POLSKA GEN 2.7-1 31 MAR 2016 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

Bardziej szczegółowo

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15 T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest

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

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

188 Funkcje analityczne

188 Funkcje analityczne Funkcje analityczne 188 Plan rozdziału 189 Wprowadzenie do funkcji analitycznych Funkcje rankingu Funkcje okna Funkcje raportujące Funkcje LAG/LEAD Funkcje FIRST/LAST Odwrotne funkcje percentyli Funkcje

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

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

FORMULARZE I FORMANTY MS EXCEL 1. TEORIA

FORMULARZE I FORMANTY MS EXCEL 1. TEORIA FORMULARZE I FORMANTY MS EXCEL 1. TEORIA Formanty formularza są prostsze w użyciu, gdyż nie wymagają pisania kodu w języku Visual Basic for Applications (VBA). Aby skorzystać z efektów działania konkretnego

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

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

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne. Kwerendy wybierające Kwerenda wybierająca jest najczęściej używanym rodzajem kwerendy. Służy do otrzymywania danych z tabeli lub tabel i wyświetla wyniki w arkuszu danych, w którym można je następnie aktualizować

Bardziej szczegółowo

ARKUSZ KALKULACYJNY komórka

ARKUSZ KALKULACYJNY komórka ARKUSZ KALKULACYJNY Arkusz kalkulacyjny program służący do obliczeń, kalkulacji i ich interpretacji graficznej w postaci wykresów. Przykłady programów typu Arkusz Kalkulacyjny: - Ms Excel (*.xls; *.xlsx)

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

Technologia Informacyjna Zajęcia 10. JEŻELI(warunek_logiczny; wartość_dla_prawdy; wartość_dla_fałszu)

Technologia Informacyjna Zajęcia 10. JEŻELI(warunek_logiczny; wartość_dla_prawdy; wartość_dla_fałszu) MS Excel 2007 1. JEŻELI - funkcja służąca do testowania warunków logicznych Składnia: JEŻELI(warunek_logiczny; wartość_dla_prawdy; wartość_dla_fałszu) W warunku logicznym wykorzystywane są logiczne operatory

Bardziej szczegółowo

Uzupełnij pola tabeli zgodnie z przykładem poniżej,

Uzupełnij pola tabeli zgodnie z przykładem poniżej, 1. Wykonaj bazę danych biblioteki szkolnej, Otwórz MS Access a następnie z menu plik wybierz przycisk nowy, w oknie nowy plik wybieramy pusta baza danych nadaj jej nazwę Biblioteka i wybierz miejsce w

Bardziej szczegółowo

Microsoft Excel 2003 profesjonalna analiza i raportowanie oraz prezentacja danych

Microsoft Excel 2003 profesjonalna analiza i raportowanie oraz prezentacja danych Microsoft Excel 2003 profesjonalna analiza i raportowanie oraz prezentacja danych Projekt: Wdrożenie strategii szkoleniowej prowadzony przez KancelarięPrezesa Rady Ministrów Projekt współfinansowany przez

Bardziej szczegółowo

Wykład III. dr Artur Bartoszewski www.bartoszewski.pr.radom.pl. Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych

Wykład III. dr Artur Bartoszewski www.bartoszewski.pr.radom.pl. Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych dr Artur Bartoszewski www.bartoszewski.pr.radom.pl Wykład III W prezentacji wykorzystano fragmenty i przykłady z książki: Joe Habraken;

Bardziej szczegółowo

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

Zadania z SQLa (MS SQL Server)

Zadania z SQLa (MS SQL Server) Zadania z SQLa (MS SQL Server) Struktura testowej bazy danych (diagram ERD): opracował dr Robert Fidytek SPIS TYPÓW ZADAŃ 1 Projekcja wyników zapytań (SELECT FROM )... 3 2 Sortowanie wyników zapytań (ORDER

Bardziej szczegółowo

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL

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

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

Bardziej szczegółowo

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki Podstawy Informatyki i algorytmizacji wykład 2 dr inż. Maria Lachowicz Wykład 2: Typy danych w EXCELu

Bardziej szczegółowo

Laboratorium nr 10. Temat: Połączenia relacji

Laboratorium nr 10. Temat: Połączenia relacji Laboratorium nr 10 Temat: Połączenia relacji Dotychczas omawiane zapytania zawsze dotyczyły jednej relacji. MoŜliwe jest jednak pisanie zapytań, które odczytują i łączą dane z wielu relacji. Celem tego

Bardziej szczegółowo

Bazy danych 7/15. Andrzej Łachwa, UJ,

Bazy danych 7/15. Andrzej Łachwa, UJ, Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 7/15 Tabele pomocnicze Tabele pomocnicze nie są częścią modelu danych, więc nie powinny pojawiać się na etapie

Bardziej szczegółowo

www.comarch.pl/szkolenia Operacja PIVOT w języku SQL w środowisku Oracle 21.11.2012

www.comarch.pl/szkolenia Operacja PIVOT w języku SQL w środowisku Oracle 21.11.2012 Operacja PIVOT w języku SQL w środowisku Oracle 21.11.2012 Zakres Wprowadzenie Idea przestawiania danych Możliwe zastosowania Przestawianie danych bez klauzuli PIVOT Konstrukcja klauzuli Korzyści ze stosowania

Bardziej szczegółowo

Użycie Visual Basic for Applications ("VBA")

Użycie Visual Basic for Applications (VBA) Użycie Visual Basic for Applications ("VBA") Przegląd SEE z modułem VBA Developer SEE używa języka programowania Visual Basic for Applications (VBA) pozwalającego tworzyć krótkie programy zwane "makrami".

Bardziej szczegółowo

TEMAT: SPOSOBY ADRESOWANIA W

TEMAT: SPOSOBY ADRESOWANIA W CENTRUM EDUKACJI AKADEMIA SUKCESU Praca Semestralna TEMAT: SPOSOBY ADRESOWANIA W ARKUSZU KALKULACYJNYM EXCEL. Kierunek: Technik Informatyk Semestr: II Wykładowca: Jan Nosal Słuchacz: Łukasz Stocki CO TO

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

Formuły formułom funkcji adresowania odwoływania nazwy Funkcja SUMA argumentami SUMA

Formuły formułom funkcji adresowania odwoływania nazwy Funkcja SUMA argumentami SUMA Formuły Dzięki formułom Excel jest potężnym narzędziem wykonującym na bieżąco skomplikowane obliczenia. Bez nich byłby jedynie martwą tabelą rozciągniętą na wiele kolumn i wierszy, taką pokratkowaną komputerową

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 9 Kolekcje Operacje na kolekcjach Testowanie kolekcji Kolekcje w bazie danych Funkcje tabelaryczne Kolekcje wielopoziomowe - 2 -

Bardziej szczegółowo

ECDL/ICDL Zaawansowane arkusze kalkulacyjne Moduł A2 Sylabus, wersja 2.0

ECDL/ICDL Zaawansowane arkusze kalkulacyjne Moduł A2 Sylabus, wersja 2.0 ECDL/ICDL Zaawansowane arkusze kalkulacyjne Moduł A2 Sylabus, wersja 2.0 Przeznaczenie sylabusa Dokument ten zawiera szczegółowy sylabus dla modułu ECDL/ICDL Zaawansowane arkusze kalkulacyjne. Sylabus

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

SKONSOLIDOWANY RAPORT ROCZNY za 2008 rok

SKONSOLIDOWANY RAPORT ROCZNY za 2008 rok SKONSOLIDOWANY RAPORT ROCZNY za 2008 rok SKONSOLIDOWANY RAPORT ROCZNY za 2008 rok SKONSOLIDOWANY RAPORT ROCZNY za 2008 rok SKONSOLIDOWANY RAPORT ROCZNY za 2008 rok StarBANK SKONSOLIDOWANY RAPORT ROCZNY

Bardziej szczegółowo

ANKIETER wersja 5.1.2 tworzenie kwestionariusza

ANKIETER wersja 5.1.2 tworzenie kwestionariusza ANKIETER wersja 5.1.2 tworzenie kwestionariusza Wstęp Kwestionariusz do systemu Ankieter wprowadza się w postaci pliku XML. Pliki XML można tworzyć w dowolnym edytorze tekstu, zapisujemy go z rozszerzeniem

Bardziej szczegółowo

Funkcje Tablicowe podstawy

Funkcje Tablicowe podstawy Funkcje Tablicowe podstawy Funkcje Tablicowe są dość rzadko używane w biznesie, a pomocne przede wszystkim w przypadku zaawansowanych obliczeń matematycznych i statystycznych. Lekcja ta ograniczy się tylko

Bardziej szczegółowo

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych Spis treści Wprowadzenie... ix Organizacja ksiąŝki... ix Od czego zacząć?... x Konwencje przyjęte w ksiąŝce... x Wymagania systemowe... xi Przykłady kodu... xii Konfiguracja SQL Server 2005 Express Edition...

Bardziej szczegółowo

Excel z elementami VBA w firmie.

Excel z elementami VBA w firmie. Excel z elementami VBA w firmie. Autor: Sergiusz Flanczewski Wykorzystaj potencjał Excela, by Twoja firma odniosła sukces! Jak zaprząc dodatki Excela do tworzenia dokumentacji firmowej? Jak importować

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

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do Na dotychczasowych zajęciach zapoznaliście się Państwo z poleceniem SELECT pozwalającym ą na wykonywanie zapytań ń do bazy danych i odczytywanie danych zawartych w relacjach. Celem tego ćwiczenia jest

Bardziej szczegółowo