Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диго_ACCESS.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.72 Mб
Скачать

2.2.4 Запросы с подгруппировкой

Термина «обобщенный» или «агрегирующий» оператор в Access нет. Есть просто понятие «встроенные функции Microsoft Access», а сре-ди них – «статистические функции» и «статистические функции по под-множеству».

Статистические функции – это: Sum (сумма), Count (количество записей, возвращаемых запросом), Avg (среднее), Var (дисперсия) и др., используемые для расчета итоговых значений. Статистическая функция, с помощью которой в запросе обрабатываются значения поля, может быть выбрана в ячейке строки "Групповая операция" в бланке запроса. Первоначально эта строка в бланке запроса отсутствует. Чтобы она поя-вилась, надо выбрать позицию “Групповые операции” меню “Вид”, или нажать кнопку со знаком “У” на панели инструментов.

Рис. 2. 17. Использование групповых операций в запросах. Выбор агреги-рующей функции

Первым полем, выводимым в ответ, должно быть поле, по которо-му производится группировка, а затем – поля, над которыми произво-дятся вычисления. Все групповые операции, кроме Count, могут выпол-няться только над числовыми полями.

55

В строке «Групповая операция» щелчком мыши можно открыть список доступных функций, в котором можно осуществить выбор нуж-ной статистической функций для выполняемых над полем вычислений.

На рис. 2.17 приведен пример использования групповых операций в запросе (Count – подсчет числа сотрудников, работающих на каждой кафедре).

Рис. 2.18. Запрос с вычисляемым полем, используемым в условии отбора. Групповые операции

В Access предварительно упорядочивать таблицу по полю, по ко-торому ведется группировка, не обязательно.

Выражения, определяющие вычисляемые поля, создаются с по-мощью мастера простых запросов или вводятся пользователем в строку «Групповая операция» бланка запроса. В бланке запроса задают также условия отбора, с помощью которых определяются группы, для которых вычисляются итоговые значения, записи, включаемые в вычисления, или результаты, отображаемые после выполнения расчетов. На рис. 2.18 изображен запрос, в котором условия отбора применены к вычисляемо-му полю («Выдать список кафедр, на которых работает меньше 3 чело-век»).

Если предположить (а это практически всегда так), что нет ка-федр, на которых не работает ни одного человека, то результат за-проса будет верен и когда задано внутреннее соединение, и если задано

56

левое соединение. Но, предположим, что задается аналогичный по су-ществу запрос «Выдать список сотрудников, имеющих меньше двух детей» на двух связанных таблицах «СОТРУДНИК» и «ДЕТИ». Всегда есть вероятность, что имеются сотрудники, которые не имеют де-тей. В случае если будет использовано внутреннее соединение (а оно за-дается по умолчанию), то такие сотрудники не попадут в ответ (т. е. результат ответа будет не соответствовать действительности). На результат запроса «Выдать список сотрудников, имеющих больше двух детей» параметры объединения таблиц не окажут влияния.

Резюме:

1. При реализации запросов на связанных таблицах по ER-модели уточните характер связи между соответ-ствующими объектами (это может повлиять на форму-лировку запроса).

2. Определите, какие должны быть заданы параметры объединения для данного запроса (в случае необхо-димости измените эти параметры).

3. Будьте внимательны при формулировании запроса: даже на первый взгляд однотипные запросы требуют разной реализации.

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