ПЕРЕКРЕСТНЫЕ ЗАПРОСЫ
Цели занятия:
1. Изучить возможности СУБД ACCESS по формированию запросов и поиску информации на их основе.
2. Получить навыки работы с запросами.
1. Учебные вопросы
1. Создание перекрестной таблицы.
2. Создание перекрестной таблицы на основе данных из нескольких таблиц.
3. Создание перекрестной таблицы в режиме конструктора.
Методические указания по подготовке к работе
1. Изучить материал темы по конспекту и рекомендованной литературе.
2. Изучить настоящее задание и сделать необходимые выписки.
Методические рекомендации по выполнению работы.
Создание перекрестной таблицы
Пусть необходимо для каждого преподавателя определить число студентов, знания которых он оценил.
ü Для создания запроса в окне базы данных выберите объект Запросы Þ Создать.
ü В окне Новый запрос выберите Перекрестный запрос.
ü В окне мастера Создание перекрестных таблиц выберите таблицу УСПЕВАЕМОСТЬ, поля которой будут выведены в перекрестном запросе.
ü В следующем окне мастера выберите для заголовков строк поле ТАБН. Для выбора используйте кнопку >. Нажмите кнопку Далее>.
ü Выберите для заголовков столбцов поле ВИДЗ.
ü Для подсчета числа студентов, которые экзаменовались у данного преподавателя по данному виду занятия, и размещения этого значения в ячейке на пересечении строк и столбцов таблицы выберите поле НС и функцию Число.
ü Чтобы подсчитать общее количество студентов, знания которых оценивал преподаватель, установите флажок Вычислить итоговое значение каждой строки.
ü Задайте имя запроса Число сдач и нажмите кнопку Готово.
ü Сохраните запрос.
Создание перекрестной таблицы на основе данных из нескольких таблиц
Очевидно, в результате выполнения перекрестного запроса, созданного в предыдущем упражнении, удобно видеть в таблице не табельные номера преподавателей, а их фамилии. Фамилии можно получить из таблицы ПРЕПОДАВАТЕЛЬ, которая находится в отношениях 1:М с таблицей УСПЕВАЕМОСТЬ и связана с ней по полю ТАБН. Поскольку мастер не позволяет строить перекрестный запрос на полях нескольких таблиц, перед тем как создавать такой запрос, нужно создать запрос на выборку для таблицы УСПЕВАЕМОСТЬ и ПРЕПОДАВАТЕЛЬ, в котором необходимо выбрать нужные поля.
1. Создайте с помощью мастера простой запрос. В этом запросе выберите из таблицы ПРЕПОДАВАТЕЛЬ поле ФИО, а из таблицы УСПЕВАЕМОСТЬ – поля ВИДЗ и НС. Сохраните запрос.
2. Теперь создайте перекрестный запрос. В качестве источника данных для него выберите сохраненный запрос на выборку.
3. Выберите ФИО в качестве поля для заголовков строк.
4. Для заголовков столбцов выберите ВИДЗ.
5. Для заголовков значений ячеек выберите НС и функцию Число.
Создание перекрестной таблицы в режиме конструктора
Предположим необходимо создать перекрестную таблицу на основе таблицы ИЗУЧЕНИ Е, в которой заголовками строк будут ТАБН, столбцы КП, а на пересечении строк и столбцов – сумма часов по полю ЧАСЫ.
1. Выполните команду Создание запроса в режиме конструктора.
2. В окне Добавление таблицы включите в схему данных запроса таблицы ИЗУЧЕНИЕ, содержащую все необходимые поля.
3. В бланке запроса перетащите поля ТАБН, КП, по которым будет осуществляться группировка, и которые будут использоваться в строках и столбцах перекрестной таблицы соответственно, и поле ЧАСЫ, по которому будет подсчитываться суммарное число часов для полученных групп.
4. В окне конструктора преобразуйте запрос на выборку в перекрестный запрос. Для этого выполните команду Запрос Þ Перекрестный. В бланке запроса появятся две дополнительные строки Групповая операция и Перекрестная таблица.
5. В строке Перекрестная таблица для поля ТАБН выберите из списка значение Заголовки строк, для поля КП – Заголовки столбцов, для поля ЧАСЫ – Значение.
6. В строке Групповая операция для поля ЧАСЫ выберите из списка значение Sum, оставив в остальных строках значение Группировка.
7. Для включения в перекрестную таблицу итоговых значений для каждой строки дополните бланк запроса еще одним полем ЧАСЫ, замените значение Группировка на Sum, а в строке Перекрестная таблица выберите Заголовки строк.
8. Выполните запрос.
9. Для большей информативности перекрестной таблицы заменим табельные номера преподавателей на их фамилии, а коды предметов на их наименования. Для этого вернитесь в режим конструктора.
10. Поле с фамилией размещено в таблице ПРЕПОДАВАТЕЛЬ, а с наименованием предмета в таблице ПРЕДМЕТ, поэтому добавьте в схему запроса эти таблицы.
11. Замените в бланке запроса поле КП на поле НП таблицы ПЕРДМЕТ, а поле ТАБН на поле ФИО таблицы ПРЕПОДАВАТЕЛЬ. Для этого в поле КП в строке Имя таблицы нажмите кнопку списка и выберите ПРЕДМЕТ, а в строке Поле – НП. Аналогичными действиями замените ТАБН на ФИО.
12. Для изменения подписи поля, содержащего итоговую сумму по строкам, щелкните правой кнопкой мыши в зоне этого поля. В открывшемся контекстно-зависимом меню выберите пункт Свойства. В окне Свойства поля введите Всего часов в строку Подпись.
13. Сохраните запрос и просмотрите его в режиме SQL.