Извлечь номера и названия продуктов, с указанием номеров и названий блюд, в которые эти продукты не входят

SELECT продукт.ном_пр, [назв_пр], Блюдо.ном_бл, [назв_бл]

FROM продукт, блюдо

WHERE ном_пр NOT IN ( SELECT ном_пр FROM рецепт1 WHERE рецепт1.ном_бл = блюдо.ном_бл)

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

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

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

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

SELECT Блюдо.ном_бл as nom, Блюдо.назв_бл as name,'блюдо' as tip

from Блюдо

where Блюдо.категория='диетические'

UNION

SELECT Продукт.ном_прод as nom,

Продукт.назв_прод as name,'продукт' as tip

from Продукт

where Продукт.калорийность<500

ORDER BY name;

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.

Извлечь номера и фио студентов, не сдавших на "отлично" ни одного предмета, которые не сдал на "отлично" студент Иванов П.С.

SELECT [no_st], [fio]

FROM stud

WHERE stud.no_st IN (SELECT no_st FROM uspev WHERE (no_pr IN (SELECT uspev.no_pr FROM uspev, stud WHERE uspev.ocenka<5 AND stud.fio="Иванов П.С." AND stud.no_st=uspev.no_st)) GROUP BY no_st HAVING max(ocenka)<5);

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

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

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

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

SELECT [блюдо].[категория], min(калорийность) AS мин, max(калорийность) AS макс, avg(калорийность) AS сред

FROM блюдо, (SELECT блюдо.ном_бл AS ном_бл, калорийность

FROM (блюдо inner join рецепт on [блюдо].[ном_бл]=[рецепт].[ном_бл]) inner join продукт on [продукт].[ном_прод]=[рецепт].[ном_прод]

GROUP BY блюдо.ном_бл,калорийность)

WHERE [блюдо].[ном_бл]=ном_бл

GROUP BY [блюдо].[категория];

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.

Извлечь сведения о студентах со средним баллом выше среднего балла студента номер 992027: номер, ф.и.о., значения минимального, максимального и среднего баллов (не учитывать "хвосты").

SELECT stud.no_st, stud.fio, minimum, maximum, average

FROM stud, [SELECT stud.no_st AS no_st, min(uspev.ocenka) AS minimum, max(uspev.ocenka) AS maximum, avg(uspev.ocenka) AS average

FROM stud, uspev

WHERE stud.no_st=uspev.no_st

GROUP BY stud.no_st]. AS [%$##@_Alias]

WHERE average>

(SELECT avg([ocenka])

FROM uspev

WHERE no_st=992027

GROUP BY [no_st];)

AND stud.no_st=no_st;

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.

Извлечь статистику уровней успеваемости по специальностям: специальность, оценка, количество студентов, получивших эту оценку, количество предметов, по которым получена эта оценка (не учитывать "хвосты").

SELECT [stud].[spec], [uspev].[ocenka], count([uspev].[no_st]) AS kolvo_st, count([uspev].[no_pr]) AS kolvo_pr

FROM stud, uspev

WHERE [stud].[no_st]=[uspev].[no_st]

GROUP BY stud.spec, uspev.ocenka;

Stud (no_st, fio, spec, kurs, no_gr, data_rojd) – справочник студентов;

Prepod (no_pr, fio, kafedra, data_rojd) – справочник препреподавателей;

Rukov (no_st, no_pr, ocenka, data) – руководство конкр. студентом конкр. преподавателем.

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

SELECT no_pr AS no, fio, "Преподаватель" AS kateg

FROM prepod

UNION SELECT no_st AS no, fio, "Студент" AS kateg

FROM stud

WHERE no_st IN(SELECT no_st FROM rukov)

ORDER BY fio;

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.

Извлечь номера и фамилии всех студентов с указанием названия каждого сданного предмета и полученной оценки (для студентов, не сдавших ни одного предмета, соответствующие значения – Null).

SELECT stud.no_st, stud.fio, predm.naim_pr AS naim_pr, uspev.ocenka AS ocenka

FROM stud, predm, uspev

WHERE stud.no_st=uspev.no_st

AND predm.no_pr=uspev.no_pr

UNION SELECT stud.no_st, stud.fio, " " AS naim_pr, " " AS ocenka

FROM stud

WHERE stud.no_st NOT IN (SELECT DISTINCT no_st FROM uspev);

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.

Извлечь номера и фамилии всех студентов с указанием номера и названия каждого несданного предмета из числа положенных для данного курса данной специальности (для студентов, сдавших все положенные предметы, соответствующие значения должны быть Null).

SELECT stud.no_st, stud.fio, predm.no_pr AS nop, predm.naim_pr AS name

FROM stud, predm

WHERE

predm.kurs=stud.kurs

AND NOT EXISTS(

SELECT no_st, no_pr

FROM uspev

WHERE uspev.no_pr=predm.no_pr

AND uspev.no_st=stud.no_st)

UNION SELECT stud.no_st, stud.fio, NULL AS nop, NULL AS name

FROM stud, predm

WHERE stud.no_st NOT IN(

SELECT stud.no_st

FROM stud, predm

WHERE predm.kurs=stud.kurs

AND NOT EXISTS(

SELECT no_st, no_pr

FROM uspev

WHERE uspev.no_pr=predm.no_pr

AND uspev.no_st=stud.no_st));

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.

Извлечь номера и фио студентов, сдавших на "отлично" по крайней мере все те предметы, которые сдал на "отлично" студент Иванов П.С.

SELECT [stud].[no_st], [stud].[fio]

FROM stud, uspev

WHERE stud.no_st=uspev.no_st AND uspev.no_pr IN (SELECT DISTINCT [uspev].[no_pr] AS no_pr FROM uspev, stud WHERE [stud].[fio]="AAA" And [stud].[no_st]=[uspev].[no_st] And [uspev].[ocenka]=5)

GROUP BY [stud].[no_st], [stud].[fio]

HAVING min(uspev.ocenka)=5 AND max(uspev.ocenka)=5;

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

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

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

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

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

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

WHERE ((([Рецепт]![кол_прод_в_блюде])>100) AND (([Блюдо]![категория])="малокалорийные"));

II Вариант (лучше)-димин

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

FROM продукт

WHERE ном_пр IN ( SELECT ном_пр FROM рецепт,блюдо WHERE кол_прод_в_блюде > 100 AND рецепт.ном_бл = блюдо.ном_бл AND категория = “малокалорийные”);

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.

Извлечь номера и фио студентов, сдавших на "отлично" хотя бы один предмет из тех, которые сдал на "отлично" студент Иванов П.С.

SELECT DISTINCT [stud].[no_st], [stud].[fio]

FROM stud, uspev

WHERE stud.no_st = uspev.no_st AND uspev.ocenka = 5 AND uspev.no_pr IN ( SELECT uspev.no_pr FROM stud, uspev WHERE uspev.no_st = stud.no_st AND stud.fio = 'Иванов' AND uspev.ocenka =5);

II Вариант

SELECT Stud.no_st, Stud.fio

FROM Иванов INNER JOIN (Stud INNER JOIN (Predm INNER JOIN Uspev ON Predm.no_pr = Uspev.no_pr) ON Stud.no_st = Uspev.no_st) ON Иванов.no_pr = Uspev.no_pr

WHERE (((Stud.fio)<>("Иванов П.С.")) AND (([Uspev]![ocenka])="отлично"));

Запрос Иванов

SELECT Uspev.no_st, Uspev.ocenka, Uspev.no_pr

FROM Stud INNER JOIN (Predm INNER JOIN Uspev ON Predm.no_pr = Uspev.no_pr) ON Stud.no_st = Uspev.no_st

WHERE ((([Stud]![fio])="Иванов П.С.") AND (([Uspev]![ocenka])="Отлично"));

Stud (no_st, fio, spec, kurs, no_gr, data_rojd) – справочник студентов;

Prepod (no_pr, fio, kafedra, data_rojd) – справочник препреподавателей;

Rukov (no_st, no_pr, ocenka, data) – руководство конкр. студентом конкр. преподавателем.

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

SELECT no_pr as no, fio, "Преподаватель" as kateg

From prepod

WHERE no_pr IN (SELECT no_pr FROM rukov)

UNION SELECT no_st as no, fio, "Студент" as kateg

FROM stud

WHERE no_st IN ( SELECT no_st FROM rukov)

ORDER BY fio;

Stud (no_st, fio, spec, kurs, no_gr, data_rojd) – справочник студентов;

Prepod (no_pr, fio, kafedra, data_rojd) – справочник препреподавателей;

Rukov (no_st, no_pr, ocenka, data) – руководство конкр. студентом конкр. преподавателем.

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

SELECT no_pr AS no, fio, "Teacher" AS Kateg

FROM Prepod

WHERE Month ([Prepod]![data_rojd])=1

UNION

SELECT no_st AS no, fio, "Student" AS Kateg

FROM Stud

WHERE Month ([Stud]![data_rojd])=1

ORDER BY fio;

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.

Извлечь все пары предметов, имеющих одинаковое количество часов и ведущихся одной и той же кафедрой. Указать номера и названия предметов, количество часов, кафедру (для предметов, не имеющих пары, соответствующие значения – Null).

SELECT predm.no_pr, predm.naim_pr, predm.kol_chasov, predm.kafedra, predm_1.no_pr, predm_1.naim_pr

FROM predm

LEFT JOIN predm AS predm_1 ON (predm_1.kafedra=predm.kafedra) AND (predm_1.kol_chasov=predm.kol_chasov) AND (predm_1.no_pr<>predm.no_pr);

Stud (no_st, fio, spec, kurs, no_gr) – справочник студентов;

Predm (no_pr, naim_pr, kol_chasov, kafedra, spec, kurs) – справочник предметов;

Uspev (no_st, no_pr, ocenka, data_sdachi) – сдача конкр. студентом конкр. предмета.