Иногда нужны не отдельные записи таблицы, а итоговые значения по группам данных.
Итоговый запрос позволяет получить значения таких итоговых показателей, как суммарное, среднее, минимальное, максимальное значения и др. Для расчета этих показателей используются следующие групповые операции: Sum (сумма), Count (количество), Avg (среднее) и др.
Для получения итоговых показателей, данные необходимо сгруппировать, т.е. отсортировать их по тому столбцу, при изменении значений которого, подводятся итоги. Если группировка осуществляется по нескольким столбцам, то данные сначала сортируются по самому левому столбцу с группировкой, а затем по следующему столбцу с группировкой. Поэтому в запросе нужно располагать левее то поле с группировкой, по которому должна осуществляться внешняя сортировка.
Для создания итогового запроса необходимо выполнить следующие действия:
1. Создать простой запрос на выборку, который позволяет вывести следующие поля:
- поля, по которым нужно группировать данные, т.е. при изменении значения которых необходимо подводить итоги;
- поля, в которых нужно получить итоговые показатели.
Примечание. Если по какому-либо полю нужно получить несколько итоговых показателей (например, максимальное, минимальное, суммарное значение и др. показатели), то это поле нужно поместить в запрос столько раз, сколько показателей по нему нужно получить.
2. В режиме конструктора запроса выполнить команду "Групповые операции", нажав на панели инструментов кнопку S или щелкнув правой кнопкой мыши на любом поле и в появившемся меню выбрав пункт "Групповые операции".
3. В нижней части запроса в режиме конструктора появится дополнительная строка Групповая операция, в каждом столбце которой появится операция "Группировка". Операция "Группировка" позволяет группировать данные по тому столбцу, в котором она находится. Если в каком-либо поле необходимо получить итоговый показатель, то необходимо изменить для этого поля тип групповой операции. Для этого установить курсор в строке Групповая операция этого столбца и с помощью раскрывающегося списка выбрать нужную групповую операцию,.
Пример. Из базы данных вывести следующие данные: общее, минимальное и максимальное количество каждого вида материала, поставленного каждым поставщиком, указав количество однотипных поставок.
Ход выполнения:
Для вывода нужных сведений необходимо создать итоговый запрос с двумя уровнями группировки и четырьмя итоговыми показателями. В верхнюю часть запроса необходимо поместить таблицы ПОСТАВКА, МАТЕРИАЛ, ПОСТАВЩИК, т.к. понадобятся поля только из этих таблиц. В нижней части запроса необходимо выбрать поля Поставщик, Материал, Количество_материала и Код_поставки из соответствующих таблиц. Причем поле Поставщик следует расположить левее, чем поле Материал, т.к. внешняя сортировка должна осуществляться по полю Поставщик, а поле Количество_материала следует поместить в запрос три раза, т.к. по этому полю нужно получить три итоговых показателя. Затем выполнить команду "Групповые операции", нажав на панели инструментов кнопку S В нижней части запроса в режиме конструктора появится дополнительная строка Групповая операция, в каждом столбце которой появится операция "Группировка". Затем в первом столбце Количество_материала следует изменить тип групповой операции на Sum, во втором – на Min и в третьем - на Max, а в столбце Код_поставки – на Count. В результате будет сформирован
запрос, который в режиме конструктора имеет вид, показанный на рис. 1.32.
Если выполнить этот запрос, щелкнув мышью по его названию дважды, то можно увидеть набор записей этого запроса, показанный на рис. 1.33.