- •1. Библиотека
- •2. Университет
- •3. Оптовая база
- •4. Производство
- •5. Сеть магазинов
- •6. Авторемонтные мастерские
- •7. Деканат
- •8. Договорная деятельность организации
- •9. Поликлиника
- •10. Телефонная станция
- •11. Спорт
- •12. Сельскохозяйственные работы
- •13. Городской транспорт
- •14. География
- •16. Аэропорт
- •17. Персональные эвм
- •19. Зоопарк
- •20. Шахматы
- •21. Судоходство.
- •22. Научные конференции.
- •23. Программные продукты.
- •24. Операционная система
- •25. Добыча полезных ископаемых
- •26. Автотранспортное предприятие
- •28. Справочная аптек
- •30. Изучение студентами дисциплин по выбору.
7. Деканат
Минимальный список характеристик:
-
Код группы, курс, количество студентов, общий объем часов;
-
ФИО преподавателя, вид контроля, дата;
-
Название дисциплины, категория, объем часов.
Одна группа изучает несколько дисциплин и одна дисциплина может преподаваться нескольким группам.
Категория дисциплины - гуманитарная, математическая, компьютерная, общеинженерная и т.д. Вид контроля - зачет, экзамен.
Выборки:
-
Для каждой группы определить продолжительность сессии.
SELECT Группы.Код_группы, DateDiff('d',[Группы]![Начало_сесии],[Группы]![Окончание_сессии]) AS [Продолжительность сессии] FROM Группы;
-
Определить преподавателя, который в сессию принимает экзамены (не зачеты) у наибольшего числа студентов.
SELECT Преподаватели.ФИО, Sum(Группы.Количество_студентов) AS [Sum-Количество_студентов] FROM Преподаватели INNER JOIN (Группы INNER JOIN Контроль ON Группы.Код_группы = Контроль.Группа) ON Преподаватели.Код = Контроль.Преподаватель WHERE (((Контроль.Вид_контроля)="Экзамен")) GROUP BY Преподаватели.ФИО;
Во втором запросе выбираем максимальное количество студентов, которое было принято преподавателями.
SELECT Max(Экзамен_макс1.[Sum-Количество_студентов]) AS [Max-Sum-Количество_студентов] FROM Экзамен_макс1;
В третьем запросе выбираем тех преподавателей, которые приняли максимальное число студентов на экзаменах.
SELECT Экзамен_макс1.ФИО, Экзамен_макс1.[Sum-Количество_студентов] FROM Экзамен_макс1, Экзамен_макс2 WHERE (((Экзамен_макс1.[Sum-Количество_студентов])=[Экзамен_макс2]![Max-Sum-Количество_студентов]));
-
Определить, какой процент от общего объема дисциплин, изучаемых группой 'АП-17а', составляют дисциплины каждой категории.
SELECT Группы.Код_группы, Дисциплины.Категория, Sum(Дисциплины.[Объем часов]) AS [Sum-Объем часов], [Sum-Объем часов]*100/[Объем_часов] AS Процент FROM Дисциплины INNER JOIN (Группы INNER JOIN Контроль ON Группы.Код_группы = Контроль.Группа) ON Дисциплины.Код = Контроль.Дисциплина GROUP BY Группы.Код_группы, Дисциплины.Категория, Группы.Объем_часов HAVING (((Группы.Код_группы)="АП-17а"));
-
Определить, не сдает ли какая-либо группа два экзамена в один день.
SELECT Группы.Код_группы, Контроль.Дата, Count(Контроль.Код_записи) AS [Count-Код_записи] FROM Дисциплины INNER JOIN (Группы INNER JOIN Контроль ON Группы.Код_группы = Контроль.Группа) ON Дисциплины.Код = Контроль.Дисциплина WHERE (((Контроль.Вид_контроля)="Экзамен")) GROUP BY Группы.Код_группы, Контроль.Дата HAVING (((Count(Контроль.Код_записи))>1));
8. Договорная деятельность организации
Минимальный список характеристик:
-
Шифр работы, название, трудоемкость, дата завершения;
-
ФИО сотрудника, должность, табельный номер;
-
Дата выдачи поручения на работу, трудоемкость, плановая и реальная даты окончания.
Одна и та же работа может выполняться несколькими сотрудниками и один и тот же сотрудник может участвовать в нескольких работах.
Выборки:
-
Определить те работы в 2000 г., по которым плановые сроки выполнения превышают заданную дату завершения.
SELECT Работы.Название FROM Работы INNER JOIN Поручения ON Работы.Шифр_работы = Поручения.Работа WHERE (((Работы.Дата_завершения) Between #1/1/2000# And #12/31/2000#) AND ((Поручения.Плановая_дата)>[Работы]![Дата_завершения])) GROUP BY Работы.Название;
-
Определить общее количество работ, находившихся на выполнении у некоторого сотрудника весной 1999 г.
SELECT Сотрудники.ФИО, Count(Работы.Шифр_работы) AS [Count-Шифр_работы] FROM Сотрудники INNER JOIN (Работы INNER JOIN Поручения ON Работы.Шифр_работы = Поручения.Работа) ON Сотрудники.Табельный_номер = Поручения.Сотрудник WHERE (((([Поручения]![Дата_выдачи] Between #3/1/1999# And #5/31/1999#) Or ([Поручения]![Реальная_дата] Between #3/1/1999# And #5/31/1999#) Or (([Поручения]![Дата_выдачи]<#3/1/1999#) And ([Поручения]![Реальная_дата]>#5/31/1999#)))=Yes)) GROUP BY Сотрудники.ФИО;
-
Определить те работы, которые к дате завершения были выполнены не более, чем на 50%.
SELECT Работы.Название, Sum(DateDiff('d',[Поручения]![Дата_выдачи],[Работы]![Дата_завершения])) AS Дни, Работы.Трудоемкость FROM Работы INNER JOIN Поручения ON Работы.Шифр_работы = Поручения.Работа GROUP BY Работы.Название, Работы.Трудоемкость HAVING (((Sum(DateDiff('d',[Поручения]![Дата_выдачи],[Работы]![Дата_завершения])))<[Работы]![Трудоемкость]/2));
-
Определить должностной состав сотрудников, выполняющих работу 'проект Гелиограф'.
SELECT Сотрудники.Должность, Count(Сотрудники.Табельный_номер) AS [Count-Табельный_номер] FROM Сотрудники INNER JOIN (Работы INNER JOIN Поручения ON Работы.Шифр_работы = Поручения.Работа) ON Сотрудники.Табельный_номер = Поручения.Сотрудник WHERE (((Работы.Название)="Проект Гелиограф")) GROUP BY Сотрудники.Должность;