Упражнение 4. Итоговый запрос
Запросы в Microsoft Access позволяют не только извлекать данные из таблиц, но и выполнять вычисления различных статистических параметров. Например, можно подсчитать суммарное количество контактов и определить даты первого и последнего взаимодействия с каждым человеком, зарегистрированным в таблице Контакты. Для построения такого запроса в режиме Конструктора выполните следующие шаги.
Создание итогового запроса
- В окне базы данных щёлкните на кнопке Запросы.
- Дважды щёлкните на значке Создание запроса в режиме Конструктора (Create Query In Design View).
- В появившемся окне диалога (рис. 17.6) выберите таблицу Контакты.
- Нажмите кнопку Добавить, чтобы добавить таблицу в область Конструктора запроса.
- Выделите пункт Список и снова нажмите кнопку Добавить.
- Закройте диалоговое окно Добавление таблицы (Show Table), нажав кнопку Закрыть. В окне Конструктора отобразятся списки полей двух таблиц, соединённые линией связи.
- Щёлкните на кнопке Групповые операции (Totals) на панели инструментов. В бланке запроса появится строка Групповая операция: (Total), позволяющая выполнять статистические операции с данными.
Рис. 17.6. Добавление таблицы
- Перетащите поле Фамилия в первую ячейку строки Поле (Field) Конструктора запроса.
- В ячейку второго столбца перетащите поле Имя из таблицы Контакты.
- В третий, четвёртый и пятый столбцы добавьте поле Дата из таблицы Список (рис. 17.7).
Рис. 17.7. Запрос с групповыми операциями
Применение групповых операций
- В раскрывающемся списке ячейки Групповая операция (Total) третьего столбца выберите Min.
- В той же ячейке четвёртого столбца выберите Max.
- В пятом столбце установите групповую операцию Count. Это позволит подсчитать количество записей в таблице Список, соответствующих конкретному человеку из таблицы Контакты. Доступные групповые операции приведены в таблице 17.1.
Название | Функция |
---|---|
Where | Фильтрация записей, не выполняя группировку Фильтрация записей, не выполняя группировку Фильтрация записей, не выполняя группировку |
Название | Функция |
---|---|
Where | Фильтрация записей, не выполняя группировку |
Expression | Создание вычисляемого поля |
Group By | Определяет группы записей, по которым вычисляются статистические параметры |
Last | Последнее значение в группе |
First | Первое значение в группе |
Var | Вариация значений |
StDev | Стандартное отклонение |
Count | Количество записей (исключая Null) |
Max | Максимальное значение |
Min | Минимальное значение |
Avg | Среднее значение |
Sum | Сумма значений поля |
ТАБЛИЦА 17.1. Групповые операции
Примечание
Поскольку в пятом поле запроса вычисляется количество записей, в его ячейку можно поместить любое поле из таблицы Список.
Редактирование итогового запроса
- Нажмите кнопку Вид, чтобы выполнить запрос. В появившейся таблице будут пять столбцов:
- Фамилия и Имя – для группировки.
- Дата первого контакта – вычисляется с помощью Min.
- Дата последнего контакта – вычисляется с помощью Max.
- Число контактов – вычисляется с помощью Count.
- Для улучшения читаемости вернитесь в Конструктор запроса.
- Переименуйте поля с датами в Дата первого контакта и Дата последнего контакта.
- Переименуйте последний столбец в Число контактов.
Примечание
Данный метод не работает для изменения имени поля, передающего данные напрямую из таблицы. Например, имя поля Имя изменить таким способом нельзя.
- Нажмите Вид, чтобы проверить изменения.
- Закройте запрос.
- При появлении диалогового окна сохранения нажмите Да.
- В окне Сохранение (Save As) введите имя Итоговый запрос и нажмите ОК.