|
![]() | Strana 13 (UNION, subdotaz) | ![]() | Sbírka příkladů SQL dotazů | Strana 15 (CASE v SELECT) | ![]() |
Příklad 22
Zadání: Vyberte ty firmy, které měly faktury za více než 10000,-Kč letos (tabulka FAKTURY) i vloni (tabulka FAKT_2).
Popis řešení: Vytvoříme dva dotazy podle příkladu 18. Pak provedeme množinový průnik odpovědí - pomocí klauzule INTERSECT.
SQL:
SELECT A.nazev
FROM Firmy A, Faktury B
WHERE A.cislo=B.firma
GROUP BY B.firma
HAVING 10000 < SUM(B.castka)
INTERSECT CORRESPONDING BY (nazev)
SELECT A.nazev
FROM Firmy A, Fakt_2 B
WHERE A.cislo=B.firma
GROUP BY B.firma
HAVING 10000 < SUM(B.castka)
Poznámky:
a) Malou změnou lze vytvořit dotaz na firmy, které tohoto obratu dosáhly letos ale ne vloni. Stačí použít množinový rozdíl EXCEPT.
SQL:
SELECT A.nazev
FROM Firmy A, Faktury B
WHERE A.cislo=B.firma
GROUP BY B.firma
HAVING 10000 < SUM(B.castka)
EXCEPT CORRESPONDING BY (nazev)
SELECT A.nazev
FROM Firmy A, Fakt_2 B
WHERE A.cislo=B.firma
GROUP BY B.firma
HAVING 10000 < SUM(B.castka)
![]() | Strana 13 (UNION, subdotaz) | ![]() | Sbírka příkladů SQL dotazů | Strana 15 (CASE v SELECT) | ![]() |