Упражнение 4. Итоговый запрос

Запросы в Microsoft Access позволяют не только извлекать данные из таблиц, но и выполнять вычисления различных статистических параметров. Например, можно подсчитать суммарное количество контактов и определить даты первого и последнего взаимодействия с каждым человеком, зарегистрированным в таблице Контакты. Для построения такого запроса в режиме Конструктора выполните следующие шаги.

Создание итогового запроса

  1. В окне базы данных щёлкните на кнопке Запросы.
  2. Дважды щёлкните на значке Создание запроса в режиме Конструктора (Create Query In Design View).
  3. В появившемся окне диалога (рис. 17.6) выберите таблицу Контакты.
  4. Нажмите кнопку Добавить, чтобы добавить таблицу в область Конструктора запроса.
  5. Выделите пункт Список и снова нажмите кнопку Добавить.
  6. Закройте диалоговое окно Добавление таблицы (Show Table), нажав кнопку Закрыть. В окне Конструктора отобразятся списки полей двух таблиц, соединённые линией связи.
  7. Щёлкните на кнопке Групповые операции (Totals) на панели инструментов. В бланке запроса появится строка Групповая операция: (Total), позволяющая выполнять статистические операции с данными.

Добавление таблицы

Рис. 17.6. Добавление таблицы

  1. Перетащите поле Фамилия в первую ячейку строки Поле (Field) Конструктора запроса.
  2. В ячейку второго столбца перетащите поле Имя из таблицы Контакты.
  3. В третий, четвёртый и пятый столбцы добавьте поле Дата из таблицы Список (рис. 17.7).

Запрос с групповыми операциями

Рис. 17.7. Запрос с групповыми операциями

Применение групповых операций

  1. В раскрывающемся списке ячейки Групповая операция (Total) третьего столбца выберите Min.
  2. В той же ячейке четвёртого столбца выберите Max.
  3. В пятом столбце установите групповую операцию Count. Это позволит подсчитать количество записей в таблице Список, соответствующих конкретному человеку из таблицы Контакты. Доступные групповые операции приведены в таблице 17.1.
НазваниеФункция
WhereФильтрация записей, не выполняя группировку Фильтрация записей, не выполняя группировку Фильтрация записей, не выполняя группировку
НазваниеФункция
WhereФильтрация записей, не выполняя группировку
ExpressionСоздание вычисляемого поля
Group ByОпределяет группы записей, по которым вычисляются статистические параметры
LastПоследнее значение в группе
FirstПервое значение в группе
VarВариация значений
StDevСтандартное отклонение
CountКоличество записей (исключая Null)
MaxМаксимальное значение
MinМинимальное значение
AvgСреднее значение
SumСумма значений поля

ТАБЛИЦА 17.1. Групповые операции

Примечание

Поскольку в пятом поле запроса вычисляется количество записей, в его ячейку можно поместить любое поле из таблицы Список.

Редактирование итогового запроса

  1. Нажмите кнопку Вид, чтобы выполнить запрос. В появившейся таблице будут пять столбцов:
    • Фамилия и Имя – для группировки.
    • Дата первого контакта – вычисляется с помощью Min.
    • Дата последнего контакта – вычисляется с помощью Max.
    • Число контактов – вычисляется с помощью Count.
  2. Для улучшения читаемости вернитесь в Конструктор запроса.
  3. Переименуйте поля с датами в Дата первого контакта и Дата последнего контакта.
  4. Переименуйте последний столбец в Число контактов.

Примечание

Данный метод не работает для изменения имени поля, передающего данные напрямую из таблицы. Например, имя поля Имя изменить таким способом нельзя.

  1. Нажмите Вид, чтобы проверить изменения.
  2. Закройте запрос.
  3. При появлении диалогового окна сохранения нажмите Да.
  4. В окне Сохранение (Save As) введите имя Итоговый запрос и нажмите ОК.