/* Který výrobek se nidy neprodal s větší slevou než 15% ? */ SELECT ČísloVýrobku, NázevVýrobku FROM Výrobky WHERE ČísloVýrobku NOT IN (SELECT ČísloVýrobku FROM RozpisObjednávek WHERE Sleva>0.15); SELECT v.ČísloVýrobku, NázevVýrobku FROM Výrobky v LEFT OUTER JOIN RozpisObjednávek r ON (v.ČísloVýrobku=r.ČísloVýrobku AND Sleva>0.15) WHERE ČísloObjednávky IS NULL; ---------------- /*Příklad využžívající podobnou konstrukci:*/ Mistnosti(cisloMistnosti,kapacita) Hodiny(kodHodiny) Rozvrh(kodHodiny,cisloMistnosti, kodAkce) /*Hledám volná rozvrhová okénka:*/ SELECT cisloMistnosti,kodHodiny FROM Hodiny h CROSS JOIN Mistnosti m LEFT OUTER JOIN Rozvrh r ON (h.kodHodiny=r.kodHodiny AND m.cisloMistnosti=r.cisloMistnosti) WHERE r.KodAkce IS NULL; ----------------- /*V každé kategorii vypište název nejdražšího výrobku*/ SELECT v.ČísloKategorie, NázevVýrobku,JednotkováCena FROM Výrobky v JOIN (SELECT ČísloKategorie, MAX(JednotkováCena) AS nejCena FROM Výrobky GROUP BY ČísloKategorie) A ON (v.ČísloKategorie=A.ČísloKategorie AND JednotkováCena=nejCena); /* Výsledek stejný, efektivita zpracování horší:*/ SELECT v.ČísloKategorie, NázevVýrobku,JednotkováCena FROM Výrobky v WHERE JednotkováCena >= ALL (SELECT JednotkováCena FROM Výrobky v2 WHERE v2.ČísloKategorie=v.ČísloKategorie); /* V tomto případě toto dává také stejný výsledek, a také je efektivita zpracování horší:*/ SELECT v.ČísloKategorie, NázevVýrobku,JednotkováCena FROM Výrobky v WHERE JednotkováCena = (SELECT MAX(JednotkováCena) FROM Výrobky v2 WHERE v2.ČísloKategorie=v.ČísloKategorie); ------------------------------- /* Které výrobky jsou dnes dražší než byly 3.května 1998? */ /* Poznámka: 3.května 1998 nebyla žádná objednávka.*/ /*Následující verze dotazů dávají různé výsledky! */ SELECT NázevVýrobku FROM Výrobky v WHERE JednotkováCena > ALL (SELECT JednotkováCena FROM RozpisObjednávek r INNER JOIN Objednávky o ON (r.ČísloObjednávky=o.ČísloObjednávky) WHERE DatumObjednávky = #05/03/1998# AND v.ČísloVýrobku=r.ČísloVýrobku) SELECT NázevVýrobku FROM Výrobky WHERE JednotkováCena > (SELECT MAX(JednotkováCena) FROM RozpisObjednávek r INNER JOIN Objednávky o ON (r.ČísloObjednávky=o.ČísloObjednávky) WHERE DatumObjednávky = #05/03/1998# AND v.ČísloVýrobku=r.ČísloVýrobku)