Vzhľadom k tomu, že som postup prípravy databázy spolu s jej monžosťou downloadu popísal v predchádzajúcich článkoch, nemôžem nezdieľať svoj enthusiasmus, čo sa týka manipulácie s datami.
Túto časť považujem za najviac zaujímavú z hľadiska možnej špekulácie. Inak povedané, v tomto štádiu môžete využiť svoju kreativitu a tzv. otázky na papieri premeniť v skutočné dotazy s ešte zaujímavejšími faktami. Spomeňme si na niekoľko bodov, z úvodného sylabu:
1) Koľko ktorý predajca predal áut v danom regióne, pričom platí, že predajcovia kolujú medzi predajňami.
2) Aké auto predal - každý model má inú cenu/maržu a Škoda auto momentálne disponuje modelmi: Citigo, Fabia, Roomster, Rapid, Yeti, Octavia a ich vlajková loď Superb. Tým pádom je jasné, že sa nám bude lepšie dariť, ak predáme 10 Superb-ov, nadopovaných nie skromnou výbavou oproti 10 Citigo vozíkom, určeným na nákupy a ku kaderníkovi.
3) Náklady spojené s predajom alebo odborne Cost of Sales. Pod nimi si môžeme pre jednoduchosť predstaviť rôzne promo akcie, výstavy v supermarketoch, víkendové dni a iné. Ďalšou súčasťou Cost of Sales sú zľavy na automobil.
4) Mzdové hodnotenie dealerov spolu s bonusovým systémom, aby boli dostatočne motivovaní predávať a predávať.
Na základe nich budeme formovať dotazy tak, aby sme dostali relevantné podklady. Predtým si však musíme osvojiť niektoré základné funckie.
SELECT niečo FROM niečo WHERE niečo;
Tento stýl uvažovania sa používa prakticky neustále. Ako ste si už všimli, SELECT * FROM názov tabuľky vráti vždy všetky záznamy z konkrétnej tabuľky. Napríklady SELECT * FROM cost vráti hodnoty v nasledujúcom obrázku:
Čo jesíce pekné, ale nepoznáme kto sa skrýva pod číslom 1 v stĺpci Predajca. Dnes si preto ukážeme základný postup spájania tabuliek (aby ste pochopili logiku, prepojíme tabuľku cost s tabuľkou dealer tak, aby sme pri selekte miesto čísel mali Mená) – viď obrázok:
SELECT dealer.Predajca, cost.* FROM cost, dealer WHERE Cost.Predajca=Dealer.ID;
Tento skript pracuje s označením názov tabuľky.názov stĺpca – dealer.Predajca, v ktorom sa nachádzajú skutočné mená, cost.* znamená vráť všetko z tabuľky cost. FROM cost, dealer – zoznam tabuliek. Za príkazom WHERE spájame tabuľky tak, že definujeme, ktoré stĺpce medzi tabuľkami su relevantné. Teda čísla v Cost.Predajca sú zo zoznamu čísel v Dealer.ID.
Po exekúcii skriptu si môžeme overiť, že prepojenie vyšlo tak ako malo:
V uvedenom obrázku platí, že pod číslom 1 je zakódovaný predajca Peter. Pod číslom 2 je už Martin. Takto pripravený skript nám už síce dáva pridanú hodnotu, avšak aby sme z neho dostali zrozumiteľný prehľad, chcelo by to veľa práce (napr. v Exceli). Povezme, že chceme prehľad ročných miezd jednotlivých Predajcov.
SELECT dealer.Predajca, cost.Rok, sum(cost.Mzda) as 'Mzdy' FROM cost, dealer WHERE Cost.Predajca=Dealer.ID GROUP BY dealer.Predajca, cost.Rok;
V ňom sme poupravili názov sumácie ako Mzdy a pridali parameter GROUP BY, v ktorom definujeme stĺpce, podľa ktorých chceme vytvoriť prehľad vo forme sumácie – inak povedané, chceme súčet mzdových nákladov podľa dealera a konkrétneho roku.
Výsledok vyzerá nasledovne:
Nabudúce si rozšírime problematiku spájania tabuliek pomocou JOIN klauzuly, ktorá sa používa omnoho viac frekventovane, než spôsob ktorý som dnes opísal.
Žiadne komentáre:
Zverejnenie komentára
Poznámka: Komentár môže zverejniť iba člen tohto blogu.