Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_2001_uch.doc
Скачиваний:
10
Добавлен:
16.08.2019
Размер:
381.44 Кб
Скачать

4.4. Итоговые запросы

Итоговые запросы выполняются тогда, когда пользователя интересует не каждая отдельная запись в БД, а итоговые значения по группам данных. В этом случае в бланке запроса указывается поле (или поля) по которым выбираемые данные должны объединяться в группы и поля, в которых необходимо выполнить групповую функцию. Признак группировки и групповая функция указываются в строке "Групповые операции" бланка QBE (который переводится в режим итогового запроса щелчком по кнопке  ). Групповые функции могут применяться и для вычисляемых полей.

Рассмотрим пример (рис. 10). Цель запроса - подсчитать объемы работ выполненные каждым водителем отдельно за весь период ведения БД (рис. 3). Т.е., необходимо выбрать все рейсы каждого водителя, найти объемы работы в тоннокилометрах по каждому рейсу и просуммировать их. Поэтому в бланке запроса (рис. 10) для поля "Фамилия_И_О" указан признак "Группировка", а для поля "Итого_объем" указана групповая функция суммирования данных по сгруппированным записям. В результате (в таблице запроса) для каждого водителя выведена только одна строка с суммарным объемом выполненных работ.

Итого объем: итоговый запрос

Поле:

Фамилия_И_О

Итого_объем:[Вес]*[Расстояние]

Имя таблицы:

ВОДИТЕЛИ

Групповая операция:

Группировка

Sum

Сортировка:

Вывод на экран:

Условия отбора:

Или:

а) бланк запроса

Итого объем: итоговый запрос

Фамилия_И_О

Итого_объем

Ермаков Ф.Г.

464,1

Локтев И.Д.

1066,8

Антонов Р.Т.

36

Иванов С.П.

1646,9

б) результат выполнения итогового запроса

Рис. 10. Бланк и таблица запроса "Итого объем "

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

В MS Access в список групповых функций входят следующие:

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

Count - возвращает число записей, в которых значение заданного поля отличны от Null;

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

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

Max - возвращает наибольшее значение, найденное в этом поле

внутри каждой группы;

Min - возвращает наименьшее значение, найденное в этом поле

внутри каждой группы;

StDev - подсчитывает статистическое стандартное отклонение

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

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

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

Var - подсчитывает статистическую дисперсию для всех значе-

ний данного поля в каждой группе.

4.5. Влияние характера межобъектных связей

на результат запроса

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

Пример. Цель запроса: вывести список содержащий сведения о сформировавшемся закреплении автотранспорта за водителями. Рассмотрим два варианта. В первом в схему запроса включаются атрибуты только из двух таблиц, не имеющих прямой связи, “ВОДИТЕЛИ” и “АВТОТРАНСПОРТ” (рис. 3). Во втором к указанным источникам данных добавляется атрибут из таблицы “ПЕРЕВОЗКИ”, и все три источника данных становятся связанными. В обоих вариантах используется итоговая форма запроса. Бланки запросов и результаты их выполнения приведены на рис. 11. Как видно из результатов выполнения запросов, в первом случае сформирован список из 20 строк, содержащий все возможные комбинации пар “водитель-автомашина”. Реально же, после выполнения семи рейсов было зарегистрировано только шесть сочетаний “водитель-автомашина” (вариант 2).

При использовании несвязанных объектов в качестве источников данных для запросов, в СУБД MS Access между объектами может устанавливаться временная связь. Эта связь объявляется в окне запроса с одним из трех типов объединения двух таблиц.

Первый – объединение только тех записей, в которых связанные поля обеих таблиц совпадают. Второй – объединение ВСЕХ записей из первой таблицы и только тех записей из второй, в которых связан-

Закрепление_1: запрос на выборку

Поле:

Фамилия_И_О

Госномер

Имя таблицы:

ВОДИТЕЛИ

АВТОТРАНСПОРТ

Групповая операция:

Группировка

Группировка

Сортировка:

по возрастанию

Вывод на экран:

Условие отбора:

или:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]