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