- •1) Вопрос: Понятие базы данных и системы управления базами данных.
- •13)Вопрос: Основные понятия реляционной модели данных
- •2) Вопрос: Понятие и применение триггеров.
- •Триггеры after
- •Триггеры instead of
- •Использование функции update
- •3) Вопрос: Язык sql. Основные операторы sql.
- •4) Вопрос: Типы данных в sql.
- •5) Вопрос: Запросы. Назначение запросов.
- •6) Вопрос:Понятие целостности данных.
- •7) Вопрос: Унарные операции реляционной алгебры.
- •8) Вопрос:Индексирование записей в реляционных таблицах.
- •9) Вопрос:Принципы концептуального проектирования баз данных.
- •10) Вопрос:Виды и особенности моделей данных
- •11) Вопрос:Основные понятия иерархической модели данных.
- •Основные понятия иерархической структуры:
- •12) Вопрос:Операторы соединения в языке sql (join).
- •14) Вопрос:Основные понятия сетевой модели данных.
- •15) Вопрос:Использование группировки в запросах.
- •Использование групповых операций в запросах
- •16) Вопрос:Использование агрегированных функций в выражениях.
- •Аддитивная
- •Полуаддитивная
- •Неаддитивная
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.
