Sbφrka dotaz∙ û str. 15

P°φklad 23

Zadßnφ: Zjist∞te, kolik faktur bylo doÜl²ch a kolik odeslan²ch.

Popis °eÜenφ: Takto jednoduch² dotaz se zdß neb²ti hoden umφst∞nφ na konci sbφrky p°φklad∙. Opravdu, dotaz

    SELECT Count (druh)
    FROM Faktury
    GROUP BY druh

zvlßdne ka₧d². V²sledkem je jeden sloupec nadepsan² Druh se dv∞ma °ßdky pro dva typu faktur. My ale chceme, aby v²sledek tvo°il jeden °ßdek se dv∞ma sloupci, nadepsan²mi DoÜlΘ a OdeslanΘ!!

Podφvejte se na nßsledujφcφ dotaz:

SQL:

    SELECT SUM(CASE WHEN druh=1 THEN 1 ELSE 0 END) AS DoÜlΘ,
           SUM(CASE WHEN druh=2 THEN 1 ELSE 0 END) AS OdeslanΘ
    FROM Faktury

V dotazu je pou₧ito agregaΦnφ funkce bez GROUP BY - odpov∞∩ tedy bude mφt jeden zßznam. V Φßsti SELECT jsou dva v²razy, odpov∞∩ tedy bude mφt dva sloupce. Ve v²razu je pou₧ito podmφn∞nΘho v²razu CASE, kter² fakturu jednoho typu nahrazuje jedniΦkou a druhΘho typu nulou. Pak staΦφ tyto jedniΦky seΦφst agregaΦnφ funkcφ.

PokraΦovßnφ

Sbφrka dotaz∙ - ·vodnφ strana

SQL dotazy