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

Поставим задачу подсчитать суммарное количество заказов по странам. В поле Страна получателя таблицы Заказы мы видим, что заказы рассылаются в две страны: в Россию и в Украину. Для создания запроса используем таблицу Заказы. Используя режим конструктора, добавим в Конструктор запросов таблицу Заказы тем же способом, как описано в пункте 4.3. Конструктор запроса Заказы по странам показан на рис. 4.16.

 

 

 

Рис. 4.16 Конструктор запроса Заказы по странам с выпавшим меню групповых операций, в котором выбрана операция Count

 

 

 

Рис. 4.17 Группа Показать или скрыть вкладки Конструктор

 

В поля запроса из таблицы перенесём всего два: Страна получателя и Заказ. Щелчком по кнопке Итоги из группы Показать или скрыть на вкладке Конструктор (рис. 4.17) добавим строку Групповая операция в нижнюю часть Конструктора запроса, что тоже видно на рис. 4.16. Весь список групповых операций приведён в таблице 4.2.

Таблица 4.2

Функция Описание Обрабатываемые типы данных
Avg (Average) Вычисляет для столбца среднее значение. Столбец должен содержать числовые или денежные величины или значения даты или времени. Функция игнорирует пустые значения. «Числовой», «Денежный», «Дата/время»
Count Подсчитывает количество элементов в столбце. Все типы данных, за исключением наборов данных, одновременно допускающих несколько значений.
Max (Maximum) Возвращает элемент, имеющий наибольшее значение. Для текстовых данных наибольшим будет последнее по алфавиту значение, причем Access не учитывает регистр. Функция игнорирует пустые значения. «Числовой», «Денежный», «Дата/время»
Min (Minimum) Возвращает элемент, имеющий наименьшее значение. Для текстовых данных наименьшим будет первое по алфавиту значение, причем Access не учитывает регистр. Функция игнорирует пустые значения. «Числовой», «Денежный», «Дата/время»
StDev (Standard Deviation) Показывает, насколько значения отклоняются от среднего. «Числовой», «Денежный»
Sum Суммирует элементы в столбце. Работает только с числовыми или денежными данными. «Числовой», «Денежный»
Var (Variance) Вычисляет дисперсию для всех значений в столбце. Если таблица содержит менее двух строк, Access возвращает пустое значение. «Числовой», «Денежный»
Группировка Размещает одинаковые записи в таблице запроса вместе, то есть собирает их в группы для которых выполняются вычисления. Группы размещаются в алфавитном порядке и по возрастанию. «Текстовый», «Числовой»
Выражение Создает вычисляемое поле с помощью статистической функции, включенной в выражение. Типы данных, участвующие в выражении

 

 

Окончание таблицы 4.2

Условие Определяет условие отбора для поля, которое не участвует в группировке. Автоматически убирается флажок Вывод на экран. Типы данных, участвующие в условии
First Возвращают значение поля из первой записи в результирующем наборе запроса. Имя таблицы, константа или функция (не статистическая функция SQL).
Last Возвращают значение поля из последней записи в результирующем наборе запроса. Имя таблицы, константа или функция.

В клетке строки Групповая операция поля Заказ надо щёлкнуть с правой стороны. Выпадет меню с перечнем возможных групповых операций, как это видно на рис. 4.16. Из меню надо выбрать операцию Count (подсчёт). Если сразу после создания запроса перевести его в режим Открыть, то имя последнего поля окажется не очень понятным: Count-Заказ. Чтобы переименовать его, надо в режиме конструктора щелкнуть правой кнопкой мыши на поле Заказ и вызвать диалоговое окно Окно свойств (рис. 4.12) и там, в строке Подпись впечатать новое имя столбца: Всего заказов. После этого окно Конструктора запроса можно закрыть.

Готовый запрос Заказы по странам показан на рис. 4.18. В графе Всего заказов видно общее количество заказов по странам.

 

 

 

Рис. 4.18 Готовый запрос Заказы по странам

 

Второй пример запроса с групповой операцией ставит целью выявить суммы продаж по городам. Чтобы список не был слишком длинным, ограничимся только городами в Украине. Такой запрос показан на рис. 4.19.

На рис. 4.20 показан процесс конструирования запроса Суммы по городам. Он использует запрос Стоимость товаров и таблицу Клиенты.

Из таблицы Клиенты в запрос отправляются поля Страна и Город, а из запроса Стоимость товаров – поле Сумма. Строка Групповая операция образуется с помощью кнопки Итоги из группы Показать или скрыть на вкладке Конструктор (рис. 4.17), как и в предыдущем примере. Из групповых операций в поле Сумма выбирается операция Sum. Это же поле сортируется По убыванию, чтобы первыми в списке оказались города с наибольшей выручкой. Чтобы в списке остались города только из Украины в поле Страна, зададим Условие отбора: "Украина". Всё это видно на рис. 4.20. Запросив диалоговое окно Окно свойств, сменим подпись: вместо Sum-Сумма запишем Объём заказов.

 

 

 

Рис. 4.19 Готовый запрос Суммы по городам

 

 

 

 

Рис. 4.20 Конструирование запроса Суммы по городам