Sbφrka dotaz∙ û str. 8

P°φklad 15

Zadßnφ: Vyberte firmy, kterΘ byly do databßze zapsßny v m∞sφcφch leden a₧ b°ezen vΦetn∞.

SQL:

    SELECT Firmy.cislo,Firmy.nazev,Firmy.pracovnik,
      Firmy.dat_zapisu
    FROM Firmy
    WHERE (Month(dat_zapisu) IN (1,2,3))

Poznßmky:

a) stejnΘho cφle by Ülo dosßhnout i pomocφ jin²ch zßpis∙ podmφnky, nap°.

    WHERE (Month(dat_zapisu) BETWEEN 1 AND 3)

nebo

    WHERE (Month(dat_zapisu) >=1 AND Month(dat_zapisu) <=3)

b) operßtor IN mß i druhΘ pou₧itφ û hodnota se pomocφ n∞ho porovnßvß s v²sledkem subdotazu.

P°φklad 16

Zadßnφ: Vyberte faktury jednoho typu za vφce ne₧ je pr∙m∞rnß hodnota faktury tohoto typu.

Popis °eÜenφ: Rozd∞lφme si ·lohu na dva kroky. Nejprve spoΦteme pr∙m∞rnou hodnotu faktury:

    SELECT AVG(castka)
    FROM Faktury
    WHERE druh=2

Tento dotaz by bylo v²hodnΘ umφstit jako souΦßst podmφnky v sekci WHERE. WinBase602 takovΘto pou₧itφ dotazu (neboli subdotazu) v dotazu umo₧≥uje.

SQL:

    SELECT *
    FROM Faktury
    WHERE (Faktury.druh=2 AND
        Faktury.castka  >    (SELECT AVG(castka)
                    FROM Faktury
                    WHERE druh=2))

Poznßmky:

a) Subdotaz se v₧dy ohraniΦen kulat²mi zßvorkami.

b) Dotaz je editovateln², proto₧e agregaΦnφ funkce je pouze v subdotazu.

c) V podobnΘm dotazu nenφ mo₧nΘ pou₧φt klauzuli HAVING (jak to umo₧≥oval WinBase602 do verze 5).

PokraΦovßnφ

Sbφrka dotaz∙ str.9

Sbφrka dotaz∙ - ·vodnφ strana

SQL dotazy