Извлечь коды и названия поставщиков, которые либо вовсе не поставляют всего один товар, причем из Парижа. Результат упорядочить по названиям
SELECT Поставка.КодПост, Поставщик.НазвПост
FROM Поставщик INNER JOIN Поставка ON(Поставщик.КодПост=Поставка.КодПост)
WHERE count(*)=0
UNION
SELECT Поставка.КодПост, Поставщик.НазвПост
FROM Поставщик INNER JOIN Поставка ON (Поставщик.КодПост=Поставка.КодПост)
WHERE count(*)=1 AND city=’paris’
GROUP BY Поставка.КодПост
ORDER BY Поставщик.НазвПост
Поставщик (КодПост, НазвПост, Статус, Город) – справочник поставщиков;
Товар (КодТовара, НазвТовара, Вес, Цвет, Город) – справочник товаров;
Поставка (КодПост, КодТовара, Количество) – поставка данным поставщикам данного товара.
Извлечь сведения о поставщиках со средним количеством товаров в поставке выше 200: код, название, количество поставок и суммарное количество поставляемых товаров. Упорядочить по названиям.
SELECT Поставка.КодПост, Поставщик.НазвПост, count(*), SUM(Поставка.qty)
FROM Поставщик INNER JOIN Поставка ON (Поставщик.КодПост=Поставка.КодПост)
WHERE AVG(Поставка.qty)>200
GROUP BY Поставка.КодПост
ORDER BY Поставщик.НазвПост
Поставщик (КодПост, НазвПост, Статус, Город) – справочник поставщиков;
Товар (КодТовара, НазвТовара, Вес, Цвет, Город) – справочник товаров;
Поставка (КодПост, КодТовара, Количество) – поставка данным поставщикам данного товара.
Извлечь статистику поставщиков: статус, город, количество поставщиков с данным статусом из данного города, количество их поставок, суммарное количество поставляемых ими товаров. Упорядочить по статусам, затем – по городам.
SELECT Поставщик.status, Поставщик.city, count(*), SUM(Поставка.qty), count(Поставка.КодПост)
FROM Поставщик INNER JOIN Поставка ON (Поставщик.КодПост=Поставка.КодПост)
GROUP BY Поставщик.status, Поставщик.city
ORDER BY Поставщик.status, Поставщик.city
Поставщик (КодПост, НазвПост, Статус, Город) – справочник поставщиков;
Товар (КодТовара, НазвТовара, Вес, Цвет, Город) – справочник товаров;
Поставка (КодПост, КодТовара, Количество) – поставка данным поставщикам данного товара.
Извлечь сведения о товарах, у которых их суммарное количество в поставках поставщиков из Парижа выше, чем суммарное количество товаров, поставляемых поставщиком с кодом «123123»: код, название, суммарное количество.
SELECT Поставка.КодТовара, Товар.НазвТовара, sum(Поставка.qty)
FROM Поставка, Поставщик, Товар
WHERE(Поставка.КодПост=Поставщик.КодПост) AND (Поставка.КодТовара=Товар.КодТовара) AND(Поставщик.city=’Paris’)
GROUP BY Поставка.КодТовара, Товар.НазвТовара
HAVING SUM(Поставка.qty)>(SELECT SUM(Поставка.qty)
FROM Поставка
WHERE Поставка.КодПост=’123123’)
Поставщик (КодПост, НазвПост, Статус, Город) – справочник поставщиков;
Товар (КодТовара, НазвТовара, Вес, Цвет, Город) – справочник товаров;
Поставка (КодПост, КодТовара, Количество) – поставка данным поставщикам данного товара.
Извлечь коды и названия поставщиков, поставляющих более 100 штук в точности тех товаров, которые поставляет поставщик «Иванов и Ко». отсортировать результат в алфавитном порядке названий.
SELECT Поставщик.КодПост, Поставщик.НазвПост
FROM Поставщик INNER JOIN Поставка ON (Поставщик.КодПост=Поставка.КодПост)
WHERE
EXIST(SELECT DISTINCT Поставка.КодТовара
FROM Поставка INNER JOIN Поставщик ON (Поставщик.КодПост=Поставка.КодПост)
WHERE (Поставщик.НазвПост=’ Ivanov’) AND (Поставка.qty>100)
ORDER BY Поставщик.НазвПост
Поставщик (КодПост, НазвПост, Статус, Город) – справочник поставщиков;
Товар (КодТовара, НазвТовара, Вес, Цвет, Город) – справочник товаров;
Поставка (КодПост, КодТовара, Количество) – поставка данным поставщикам данного товара.
Извлечь коды и названия товаров, которые поставляют в количестве больше 100 штук, по крайней мере, все те поставщики, которые поставляют товар «Шайба». Отсортировать результат в обратном алфавитном порядке названий.
SELECT Поставка.КодТовара, Товар.НазвТовара
FROM Товар INNER JOIN Поставка ON (Поставка.КодТовара=Товар.КодТовара)
WHERE NOT EXIST(SELECT Поставка.КодПост
FROM Поставка INNER JOIN Товар ON (…)
WHERE (Товар.НазвТовара=’SHaiba’) AND
NOT IN (SELECT Поставка.КодПост FROM Поставка, Товар
WHERE ((Поставка.КодТовара=Товар.КодТовара) AND Поставка.qty>100)
ORDER BY Товар.НазвТовара DECT
Поставщик (КодПост, НазвПост, Статус, Город) – справочник поставщиков;
Товар (КодТовара, НазвТовара, Вес, Цвет, Город) – справочник товаров;
Поставка (КодПост, КодТовара, Количество) – поставка данным поставщикам данного товара.
Извлечь коды и названия поставщиков, не поставляющих в количестве более 100 штук ни одного товара из тех, которые поставляет поставщик «Иванов и Ко» (предполагается, что это поставщик поставляет хотя бы один товар). Отсортировать результат в обратном порядке кодов.
SELECT Поставщик.КодПост, Поставщик.НазвПост
FROM Поставщик INNER JOIN Поставка ON(Поставщик.КодПост=Поставка.КодПост)
WHERE NOT EXIST((SELECT Поставка.КодТовара
FROM Поставка INNER JOIN Поставщик ON (…)
WHERE Поставщик.НазвПост=’Ivanov) AND Поставка.qty>100)
ORDER BY Поставщик.КодПост DECT