Иногда возникает необходимость выполнить запрос не для каждой записи, а для групп записей, или интересуют не каждая строка таблицы, а итоговые значения по группам строк. Такие запросы называются Итоговыми.
Например, необходимо подсчитать число травмированных рабочих по каждому цеху за текущий год.
Для создания группового запроса необходимо выполнить команду Вид Þ Групповые операции или нажать на панели инструментов кнопку _å_. В нижней части окна конструктора запроса добавится строка Групповая операция, с помощью которой определяется разбиение исходной информации на группы и определяются поля, по которым подводятся итоги. В этой строке для каждого поля можно выбрать Группировка, если по этому полю отбирается группа записей, или одну из групповых операций для определения итоговых расчетов. Access предоставляет такие групповые операции:
Sum - вычисляет сумму всех значений заданного поля в каждой группе (для числовых и денежных полей);
Avq - вычисляет среднее арифметическое значений данного поля в каждой группе (для числовых и денежных полей);
|
|
Min (Max)- возвращает наименьшее (наибольшее) значение, найденное в этом поле внутри каждой группы (для числовых, денежных и текстовых полей);
Count - возвращает число записей, в которых данное поле имеет значение, отличное от Null. Для того чтобы подсчитать число записей каждой группы с учетом значения Null, надо ввести выражение Count (*) в строку поле, т.е. определить вычислимое поле (для числовых, текстовых, денежных полей, полей типа дата/время);
Stdev - подсчитывает статистическое стандартное отклонение для всех значений в каждой группе данного поля;
Var - подсчитывает статистическую дисперсию в группе поля;
First - возвращает первое значение поля в группе;
Last - возвращает последнее значение поля в группе.
Выражение – позволяетсоздать вычислимое поле с использованием итоговых функций.
Условие – позволяет создать в поле условия отбора по группам, если требуется в итоговый запрос включать не все записи.
Пример 1.
Подсчитать количество травм по каждому цеху. Каждый цех - отдельная группа, т.е. следует группировать по полю Цех, для подсчета количества записей по цеху (Count)можно использовать дату аварии.
Пример 2.
Определить общее количество зарегистрированных травм. В этом запросе вообще не надо группировать ни по какому полю, т.к. подсчет выполняется по всем цехам одновременно.
Создание условий отбора по группам. Если требуется в итоговый запрос включать не все записи, то следует организовать условие по некоторому полю. Для этого в строке Групповая операция поля надо выбрать значение Условие.
|
|
Пример.
Для каждой аварии текущего года определить самого молодого работника.
Для создания вычислимого поля с использованием итоговых функций в строкеполя Групповая операция надо выбрать значение Выражение.
Отчеты