Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БАЗА ДАННЫХ.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
359.53 Кб
Скачать

15) Вопрос:Использование группировки в запросах.

ОТВЕТ:

Использование групповых операций в запросах

Назначение групповых операций

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

В Access предусматривается девять статистических функций:

  • sum — сумма значений некоторого поля для группы;

  • Avg — среднее от всех значений поля в группе;

  • мах, Min — максимальное, минимальное значение поля в группе;

  • count — число значений поля в группе без учета пустых значений;

  • StDev — среднеквадратичное отклонение от среднего значения поля в группе;

  • var — дисперсия значений поля в группе;

  • First и Last — значение поля из первой или последней записи в группе.

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

Порядок создания запроса с использованием групповых операций

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

Выполняется команда Вид|Групповые операции (View|Totals) или на панели  инструментов конструктора запросов нажимается кнопка Групповые операции(Totals). Можно также нажать правую кнопку мыши и выбрать в контекстном меню Групповая операция (Total) (курсор мыши должен быть уста-1новлен в бланке запроса). В бланке запроса появляется строка Групповая Операция (Total), в которой для всех полей записано группировка (Group By).

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

Рассмотрим конструирование запроса с групповой операцией на примере таблицы ПОСТАВКА_ПЛАН.

Запрос с функцией Sum

Определим, какое суммарное количество каждого из товаров должно быть Обставлено покупателям по договорам. Все данные о запланированном к Доставке количестве товара указаны в таблице ПОСТАВКА_ПЛАН.

Создадим запрос на выборку для таблицы ПОСТАВКА_ПЛАН. Из списка таблицы перетащим в бланк запроса поле КОД_ТОВ — код товара. Это поле создадим для дальнейшей группировки по нему. Перетащим в бланк запроса поле КОЛ_ПОСТ, по которому будет вычисляться функция sum для подсчета суммарного количества конкретного товара, заказанного во всех договорах.

Нажмем кнопку Групповые операции (Totals). Заменим слово группировка

(Group By) в столбце КОЛ_ПОСТ на функцию Sum. Для этого вызовем список и выберем эту функцию. Бланк запроса примет вид, показанный на рис. 4.13.

В поле КОД_ТОВ отображается не код товара, сохраняемый в таблице ПОСТАВКА_ПЛАН, а его наименование. Это определяется тем, что в таблице для поля КОД_ТОВпостроен список на основе таблицы товар. Если в вашей базе данных поле КОД_ТОВ не преобразовано в поле со списком, как показано в главе 3, в таблице запроса будет отображаться код товара.

Подпись поля Sum - КОЛ_ПОСТ можно заменить на Заказано товаров. Для ввода этой подписи перейдем в режим конструктора, в бланке запроса установим курсор мыши на поле КОЛ_ПОСТ и нажмем правую кнопку. В контекстном меню выберем Свойства (Properties). В окне Свойства поля (Field Properties) наберем в строкеПодпись (Caption) — заказано товаров.

Запрос с функцией Count

Определим, сколько раз отгружался товар по каждому из договоров. Факт отгрузки фиксируется документом "Накладная".

Создадим запрос на выборку на основе таблицы накладная. Из списка таблицы накладная перетащим в бланк запроса поле НОМ_ДОГ — номер договора. По этому полю должна производиться группировка. По сути, смысл задачи сводится к подсчету в таблице числа строк с одинаковым номером договора, поэтому неважно, по какому полю будет вычисляться функция count.