- •Диски, на которых расположено больше всего файлов.
- •Программы, которые работают только с одним файлом, причем он расположен на другом диске.
- •Производителей, которые не выпускают товаров на экспорт.
- •12. Даны отношения, моделирующие работу туристического агентства, имеющего много филиалов в различных странах:
- •4 Актеры, которые участвуют в нескольких спектаклях в течение одного дня.
- •5 Актеры, у которых все спектакли проходят после полудня.
- •42. Даны отношения, моделирующие учебный процесс в школе:
4 Актеры, которые участвуют в нескольких спектаклях в течение одного дня.
SELECT DISTINCT ФИО актера
FROM R1
GROUP BY ФИО актера, Дата спектакля
HAVING COUNT (DISTINCT Название спектакля) > 1
5 Актеры, у которых все спектакли проходят после полудня.
SELECT DISTINCT ФИО актера
FROM R1
WHERE ФИО актера NOT IN ( SELECT DISTINCT ФИО актера
FROM R1INNER JOIN R2 ON R1.Название спектакля= R2.Название спектакля AND R1.Дата спектакля= R2.Дата спектакля WHERE Время начала >12.00)
42. Даны отношения, моделирующие учебный процесс в школе:
R1
Учитель |
Кабинет |
День недели |
Номер урока |
Параллель |
Буква |
Предмет |
|
|
|
|
|
|
|
R2
Ученик |
Параллель |
Буква |
|
|
|
R3
Параллель |
Буква |
Классный руководитель |
|
|
|
Составить запросы, позволяющие выбрать:
1 Учеников, которые в пределах одного дня переходят из кабинета в кабинет.
SELECT DISTINCT Ученик
FROM R1 INNER JOIN R2 ON R1.Параллель=R2.Параллель AND R1.Буква=R2.Буква
GROUP BY Ученик, День недели
HAVING COUNT (DISTINCT Кабинет) > 1
2 Учителей, ведущих уроки по всем предметам.
SELECT DISTINCT Учитель
FROM R1
GROUP BY Учитель
HAVING COUNT (DISTINCT Предмет) = (SELECT COUNT(DISTINCT Предмет) FROM R1)
3 Классы одной параллели, не имеющие общих учителей.
SELECT DISTINCT T1.Параллель, T2.Буква, Т1.Буква
FROM R1 T1 INNER JOIN R1 T2 ON T1.Параллель=Т2.Параллель
WHERE T1.Буква>Т2.Буква AND NOT EXISTS
(SELECT * FROM R1 S1 INNER JOIN R1 S2
ON S1.Параллель=S2.Параллель
WHERE S1.Буква<>S2.Буква AND S1.Параллель=Т1.Параллель AND S1.Буква=Т1.Буква
AND S2.Буква=Т2.Буква AND S1.Учитель=S2.Учитель)
4 Параллели, на которых всего один класс.
SELECT DISTINCT Параллель
FROM R2
GROUP BY Параллель
HAVING COUNT(DISTINCT Буква) = 1
5 Учителей, которые не ведут уроков у классов, которыми руководят.
SELECT DISTINT Классный руководитель
FROM R2
WHERE R2.Классный руководитель NOT IN (SELECT DISTINCT R1.Учитель
FROM R1,R2 WHERE R1.Учитель=R2.Классный руководитель AND R1.Параллель= R2.Параллель AND R1.Буква= R2.Буква)
