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

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

Например, необходимо подсчитать число травмированных рабочих по каждому цеху за текущий год.

Для создания группового запроса необходимо выполнить команду Вид Þ Групповые операции или нажать на панели инструментов кнопку ­_å_. В нижней части окна конструктора запроса добавится строка Групповая операция, с помощью которой определяется разбиение исходной информации на группы и определяются поля, по которым подводятся итоги. В этой строке для каждого поля можно выбрать Группировка, если по этому полю отбирается группа записей, или одну из групповых операций для определения итоговых расчетов. Access предоставляет такие групповые операции:

Sum - вычисляет сумму всех значений заданного поля в каждой группе (для числовых и денежных полей);

Avq - вычисляет среднее арифметическое значений данного поля в каждой группе (для числовых и денежных полей);

Min (Max)- возвращает наименьшее (наибольшее) значение, найденное в этом поле внутри каждой группы (для числовых, денежных и текстовых полей);

Count - возвращает число записей, в которых данное поле имеет значение, отличное от Null. Для того чтобы подсчитать число записей каждой группы с учетом значения Null, надо ввести выражение Count (*) в строку поле, т.е. определить вычислимое поле (для числовых, текстовых, денежных полей, полей типа дата/время);

Stdev - подсчитывает статистическое стандартное отклонение для всех значений в каждой группе данного поля;

Var - подсчитывает статистическую дисперсию в группе поля;

First - возвращает первое значение поля в группе;

Last - возвращает последнее значение поля в группе.

Выражение – позволяетсоздать вычислимое поле с использованием итоговых функций.

Условие – позволяет создать в поле условия отбора по группам, если требуется в итоговый запрос включать не все записи.

Пример 1.

Подсчитать количество травм по каждому цеху. Каждый цех - отдельная группа, т.е. следует группировать по полю Цех, для подсчета количества записей по цеху (Count)можно использовать дату аварии.

 
 


Пример 2.

 
 

Определить общее количество зарегистрированных травм. В этом запросе вообще не надо группировать ни по какому полю, т.к. подсчет выполняется по всем цехам одновременно.

Создание условий отбора по группам. Если требуется в итоговый запрос включать не все записи, то следует организовать условие по некоторому полю. Для этого в строке Групповая операция поля надо выбрать значение Условие.

Пример.

 
 

Для каждой аварии текущего года определить самого молодого работника.

Для создания вычислимого поля с использованием итоговых функций в строкеполя Групповая операция надо выбрать значение Выражение.

Отчеты


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: