Извлечь номера и фамилии студентов с указанием номеров и названий всех предметов, которые он должен сдать к текущему курсу

SELECT [stud].[no_st], [stud].[fio], [predm].[no_pr], [predm].[naim_pr]

FROM stud, predm

WHERE [stud].[kurs]=[predm].[kurs];

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.

Извлечь все блюда, а также те продукты, для которых указаны блюда. Результат должен содержать колонки: номер (блюда или продукта), название, тип ("блюдо" или "продукт" соответственно) и быть упорядоченным по названиям.

SELECT ном_бл AS no, назв_бл AS nazv, "Bludo" AS Kateg

FROM Блюдо

UNION

SELECT ном_прод AS no, назв_прод AS nazv, "Product" AS Kateg

FROM Продукт

WHERE ном_прод IN (SELECT ном_пр FROM Рецепт)

ORDER BY nazv;

Или

SELECT ном_бл,назв_бл AS название, "блюдо" AS тип

FROM блюдо

UNION SELECT продукт.ном_пр, назв_пр AS название, "продукт" AS тип

FROM продукт, рецепт

WHERE продукт.ном_пр = рецепт.ном_пр

ORDER BY название;

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.

Извлечь номера и названия продуктов, содержащихся в количестве от 100 до 200 ед. во всех блюдах категории "диетическое".

SELECT Продукт.ном_прод, Продукт.назв_прод

FROM Продукт INNER JOIN (Блюдо INNER JOIN Рецепт ON Блюдо.ном_бл = Рецепт.ном_бл) ON Продукт.ном_прод = Рецепт.ном_пр

WHERE ((([Рецепт]![кол_прод_в_блюде]) Between 100 And 200) AND (([Блюдо]![категория])="диетическое"));

Вместо ! “.”

Блюдо (ном_бл, назв_бл, категория) – справочник блюд;

Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;

Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.

Извлечь номера и названия блюд, содержащих в количестве более 100 ед. в точности все те продукты, которые содержит блюдо "Солянка московская".

SELECT [ном_бл], [назв_бл]

FROM блюдо

WHERE (select count(рецепт.ном_пр) from рецепт where рецепт.ном_бл=блюдо.ном_бл) = (select count(рецепт.ном_пр) from блюдо, рецепт where рецепт.ном_бл=блюдо.ном_бл and назв_бл="солянка") and (select count(р.ном_пр) from рецепт р where р.ном_бл=блюдо.ном_бл and (р.кол_прод_в_блюде <=100 or not exists ( select ном_пр from блюдо, рецепт where рецепт.ном_бл=блюдо.ном_бл and назв_бл="солянка" and рецепт.ном_пр=р.ном_пр)))=0;

Поставщик (КодПост, НазвПост, Статус, Город) – справочник поставщиков;

Товар (КодТовара, НазвТовара, Вес, Цвет, Город) – справочник товаров;

Поставка (КодПост, КодТовара, Количество) – поставка данным поставщикам данного товара.

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

SELECT Поставщик.КодПост, Поставщик.НазвПост, Поставщик.Статус

FROM Поставщик_x LEFT JOIN Поставщик _y ON( x.Город=y.Город)

WHERE x.Статус<=y.Статус

ORDER BY НазвПост

Поставщик (КодПост, НазвПост, Статус, Город) – справочник поставщиков;

Товар (КодТовара, НазвТовара, Вес, Цвет, Город) – справочник товаров;

Поставка (КодПост, КодТовара, Количество) – поставка данным поставщикам данного товара.

Извлечь поставщиков, которые поставляют товары, и товары которые поставляются поставщикам. Результат должен содержать колонки: «код» (поставщика/товара); «название» (поставщика/товара); «тип» (поставщик/товар); «количество» (суммарное число товаров во всех поставках поставщика / товара). Упорядочить по типам, затем – по названиям.

SELECT DISTINCT Поставка.КодПост, Поставщик.НазвПост, AS ‘Тип’, SUM(Поставка.qty)

FROM Поставщик INNER JOIN Поставка ON (Поставщик.КодПост = Поставка.КодПост)

WHERE count(*)>0

GROUP BY (Поставка.КодПост)

UNION

SELECT Товар.КодТовара, Товар.Назв.товара ‘товар’ AS ‘тип’, SUM

FROM Товар INNER JOIN Поставка ON (Товар.КодТовара = Поставка.КодТовара)

WHERE count(*)>0

GROUP BY Поставка.КодТовара

ORDER BY Тип

ORDER BY Назв.

Поставщик (КодПост, НазвПост, Статус, Город) – справочник поставщиков;

Товар (КодТовара, НазвТовара, Вес, Цвет, Город) – справочник товаров;

Поставка (КодПост, КодТовара, Количество) – поставка данным поставщикам данного товара.

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