Извлечь коды и названия поставщиков, которые либо вовсе не поставляют всего один товар, причем из Парижа. Результат упорядочить по названиям

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

Наши рекомендации