Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




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) – сдача конкр. студентом конкр. предмета.





Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 594 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Чтобы получился студенческий борщ, его нужно варить также как и домашний, только без мяса и развести водой 1:10 © Неизвестно
==> читать все изречения...

3783 - | 3694 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.