-- -- user_molap1/user_molap1@lab10g -- AW CREATE aggr_ws AW ATTACH aggr_ws RW -------------------------------------------------------------------- wymiar LOKALIZACJA -------------------------------------------------------------------- define lokalizacja dimension text maintain lokalizacja add 'p1' 'p2' 'g1' 'g2' 'w1' 'w2' 'l1' 'l2' mnt lokalizacja add 'Poznań' 'Gniezno' 'Warszawa' 'Łódź' mnt lokalizacja add 'Wielkopolska' 'Mazowsze' mnt lokalizacja add 'Polska' define lokalizacja.r relation lokalizacja limit lokalizacja to 'p1' 'p2' lokalizacja.r = 'Poznań' limit lokalizacja to 'g1' 'g2' lokalizacja.r = 'Gniezno' limit lokalizacja to 'w1' 'w2' lokalizacja.r = 'Warszawa' limit lokalizacja to 'l1' 'l2' lokalizacja.r = 'Łódź' limit lokalizacja to 'Poznań' 'Gniezno' lokalizacja.r = 'Wielkopolska' limit lokalizacja to 'Warszawa' 'Łódź' lokalizacja.r = 'Mazowsze' limit lokalizacja to 'Wielkopolska' 'Mazowsze' lokalizacja.r = 'Polska' allstat report lokalizacja.r -------------------------------------------------------------------- wymiar CZAS -------------------------------------------------------------------- define czas dimension text mnt czas add 'JAN04' 'FEB04' 'MAR04' 'APR04' 'MAY04' 'Q1.04' 'Q2.04' define czas.r relation czas limit czas to 'JAN04' 'FEB04' 'MAR04' czas.r = 'Q1.04' limit czas to 'APR04' 'MAY04' czas.r = 'Q2.04' limit czas to all report czas.r -------------------------------------------------------------------- kostka SPRZEDAZ1 -------------------------------------------------------------------- define sprzedaz1 variable decimal sprzedaz1(czas 'JAN04', lokalizacja 'p1' ) = 2 sprzedaz1(czas 'JAN04', lokalizacja 'p2' ) = 2 sprzedaz1(czas 'JAN04', lokalizacja 'g1' ) = 1 sprzedaz1(czas 'JAN04', lokalizacja 'g2' ) = 1 sprzedaz1(czas 'JAN04', lokalizacja 'w1' ) = 2 sprzedaz1(czas 'JAN04', lokalizacja 'w2' ) = 4 sprzedaz1(czas 'JAN04', lokalizacja 'l1' ) = 1 sprzedaz1(czas 'JAN04', lokalizacja 'l2' ) = 1 sprzedaz1(czas 'FEB04', lokalizacja 'p1' ) = 4 sprzedaz1(czas 'FEB04', lokalizacja 'p2' ) = 2 sprzedaz1(czas 'FEB04', lokalizacja 'g1' ) = 2 sprzedaz1(czas 'FEB04', lokalizacja 'g2' ) = 3 sprzedaz1(czas 'FEB04', lokalizacja 'w1' ) = 4 sprzedaz1(czas 'FEB04', lokalizacja 'w2' ) = 5 sprzedaz1(czas 'FEB04', lokalizacja 'l1' ) = 2 sprzedaz1(czas 'FEB04', lokalizacja 'l2' ) = 2 sprzedaz1(czas 'MAR04', lokalizacja 'p1' ) = 6 sprzedaz1(czas 'MAR04', lokalizacja 'p2' ) = 6 sprzedaz1(czas 'MAR04', lokalizacja 'g1' ) = 4 sprzedaz1(czas 'MAR04', lokalizacja 'g2' ) = 3 sprzedaz1(czas 'MAR04', lokalizacja 'w1' ) = 7 sprzedaz1(czas 'MAR04', lokalizacja 'w2' ) = 7 sprzedaz1(czas 'MAR04', lokalizacja 'l1' ) = 3 sprzedaz1(czas 'MAR04', lokalizacja 'l2' ) = 3 sprzedaz1(czas 'APR04', lokalizacja 'p1' ) = 8 sprzedaz1(czas 'APR04', lokalizacja 'p2' ) = 8 sprzedaz1(czas 'APR04', lokalizacja 'g1' ) = 7 sprzedaz1(czas 'APR04', lokalizacja 'g2' ) = 7 sprzedaz1(czas 'APR04', lokalizacja 'w1' ) = 10 sprzedaz1(czas 'APR04', lokalizacja 'w2' ) = 10 sprzedaz1(czas 'APR04', lokalizacja 'l1' ) = 5 sprzedaz1(czas 'APR04', lokalizacja 'l2' ) = 5 sprzedaz1(czas 'MAY04', lokalizacja 'p1' ) = 10 sprzedaz1(czas 'MAY04', lokalizacja 'p2' ) = 11 sprzedaz1(czas 'MAY04', lokalizacja 'g1' ) = 8 sprzedaz1(czas 'MAY04', lokalizacja 'g2' ) = 9 sprzedaz1(czas 'MAY04', lokalizacja 'w1' ) = 20 sprzedaz1(czas 'MAY04', lokalizacja 'w2' ) = 22 sprzedaz1(czas 'MAY04', lokalizacja 'l1' ) = NA sprzedaz1(czas 'MAY04', lokalizacja 'l2' ) = NA -------------------------------------------------------------------- Przykłady wykorzystania funkcji -------------------------------------------------------------------- allstat rpr sprzedaz1 -- oblicz łączne liczby sprzedaży w poszczególnych miesiącach REPORT HEADING 'łącznie' W 10 TOTAL(sprzedaz1, czas) -- oblicz średnie liczby sprzedaży przypadające na pojedynczą lokalizację REPORT HEADING 'średnia' AVERAGE(sprzedaz1 lokalizacja) -- dla każdego sklepu sprawdzić w ilu miesiącach sprzedał powyżej 4 produktów REPORT HEADING 'sprzedaz>4' COUNT(sprzedaz1 GT 4 lokalizacja) -- oblicz sumę kumulacyjną w czasie, liczby sprzedanych towarów dla okna o szerokości -- 3 rekordów i kroku przesuwu okna 1 limit czas to first 5 REPORT HEADING '3 months total' MOVINGTOTAL(sprzedaz1, -2, 0, 1, czas) LIMIT lokalizacja to 'p1' 'p2' 'w1' 'w2' LIMIT czas to 'JAN04' to 'MAY04' -- oblicz sumę kumulacyjną w czasie, liczby sprzedanych towarów limit lokalizacja to 'p1' 'p2' limit czas to first 4 REPORT W 15 DOWN lokalizacja HEADING 'sprz' W 15 sprzedaz1 HEADING 'csum' W 5 CUMSUM(sprzedaz1, czas); -- LAG i LEAD REPORT DOWN czas HEADING 'prev' LAG(sprzedaz1, 1, czas) - HEADING 'now' sprzedaz1 HEADING 'next' LEAD(sprzedaz1, 1, czas); -- LAGPCT: obliczyć procentowy przyrost/spadek liczby sprzedanych towarów dla pierwszych 6 sklepów, -- pomiędzy styczniem 04, a marcem 04 LIMIT lokalizacja to frist 6 LIMIT czas TO 'JAN04' 'MAR04' REPORT sprzedaz1, HEADING '2 mies wcześniej' LAG(sprzedaz1, 2, czas) HEADING '%zmian' LAGPCT(sprzedaz1, 2, czas)*100 -- obracanie kostki REPORT DOWN lokalizacja ACROSS czas:sprzedaz1 REPORT DOWN czas ACROSS lokalizacja:sprzedaz1 -- współczynnik wzrostu liczby sprzedanych towarów limit czas to first 4 limit lokalizacja to first 6 REPORT W 50 GROWRATE(sprzedaz1, czas); -- W 0: kolumna nie jest wyświetlana REPORT W 0 DOWN czas ACROSS lokalizacja:sprzedaz1 -- obliczenie podsumowań REPORT SUBTOTALS W 8 DOWN czas ACROSS lokalizacja: sprzedaz1