
- •ЛЕКЦІЯ 8
- •План
- •Підзапити
- •Правила створення підзапитів
- •Типи підзапитів
- •Визначити дату продажу максимальної партії товару
- •Визначити дати операцій, що перевищили по кількості товару середнє значення і вказати для
- •Визначити клієнтів, що вчинили операції з максимальною кількістю товару.
- •Визначити клієнтів, в операціях яких кількість товару відрізняється від максимального не більше ніж
- •Визначити дати, коли середня кількість проданого за день товару виявилася більше 20 одиниць
- •Визначити дати, коли середня кількість проданого за день товару виявилася більше середнього показника
- •Вкладені підзапити
- •Визначити список товарів, які є на складі
- •Визначити список відсутніх на складі товарів
- •Визначити товари, які купують клієнти з Москви
- •Визначити товари, покупку яких здійснюють тільки клієнти з Москви, і ніхто інший
- •Які товари жодного разу не купили московські клієнти?
- •Визначити фірми, що купують товари місцевого виробництва
- •Визначити фірми, які купують тільки товари, вироблені в своєму місті, і ніякі інші.
- •Ключові слова ANY і ALL
- •Знайти фірму, що купила товарів на суму, що перевищує 10000 крб
- •Знайти фірму, яка придбала товарів на найбільшу суму
- •Знайти фірми, в операціях яких кількість товару перевищує такий же показник хоча б
- •Визначити список товарів, що є на складі
- •Визначити список відсутніх на складі товарів

Знайти фірму, що купила товарів на суму, що перевищує 10000 крб
SELECT Клієнт.Фірма Sum(Товар.Цена*Операція.Кількість) AS Заг_вартість
FROM Товар INNER JOIN (Клієнт INNER JOIN Операція ON Клієнт.КодКлієнта=Операція.КодКлієнта) ON Товар.КодТовара=Операція.КодТовара
GROUP Клієнт.Фірма
HAVING Sum(Товар.Цена*Операція.Кількість) >10000

Знайти фірму, яка придбала товарів на найбільшу суму
SELECT Клієнт.Фірма Sum(Товар.Цена*Операція.Кількість) AS Заг_вартість
FROM Товар INNER JOIN (Клієнт INNER JOIN Операція ON Клієнт.КодКлієнта=Операція.КодКлієнта) ON Товар.КодТовара=Операція.КодТовара
GROUP Клієнт.Фірма
HAVING Sum(Товар.Цена*Операція.Кількість) >= ALL(SELECT Sum(Товар.Цена*Операція.Кількість) FROM Товар INNER JOIN Операція
ON Товар.КодТовара=Операція.КодТовара GROUP Операція.КодКлієнта)

Знайти фірми, в операціях яких кількість товару перевищує такий же показник хоча б в одній операції клієнтів з Самари
SELECT Клієнт.Фірма, Операція.Кількість
FROM Клієнт INNER JOIN Операція ON Клієнт.КодКлієнта=Операція.КодКлієнта
WHERE Операція.Кількість > ANY(SELECT Операція.Кількість
FROM Клієнт INNER JOIN Операція ON Клієнт.КодКлієнта=Операція.КодКлієнта
WHERE Клієнт.МістоКлієнта='Самара')

Визначити список товарів, що є на складі
SELECT Назва
FROM Товар
WHERE EXISTS (SELECT КодТовара FROM Склад
WHERE Товар.КодТовара=Склад.КодТовара)

Визначити список відсутніх на складі товарів
SELECT Назва
FROM Товар
WHERE NOT EXISTS (SELECT КодТовара FROM Склад
WHERE Товар.КодТовара=Склад.КодТовара)