Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетБД часть2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.11 Mб
Скачать
    1. Итоговые запросы

Итоговые запросы позволяют производить итоговые вычисления по группам данных. Создание итогового запроса происходит в 2 этапа:

  1. Группирование данных по значениям определённого поля.

  • Выбрать коман­ду Вид  Групповая операция или в режиме Конструктора запроса нажать кнопку Группо­вые операции на панели инструментов.

  • Обратить внимание на появление строки «Групповая операция» в бланке запроса. Команда Групповая операция дает установку Группировка для любого поля, занесённого в бланк запроса. В этом случае записи таблицы группируются, но итоги не подводятся.

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

  1. Вычисление итогов в группе.

Заменить в соответствующем поле установку Группировка в строке Групповая операция на конкретные итоговые функции. Задать нужную функцию можно, указав её в раскрывающемся списке Группировка.

Примечания.

  1. MS Access предоставляет 9 статистических функций SQL, обеспечивающих выполнение групповых операций (табл.1).

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

  3. Строка Групповая операция в каждом поле должна иметь определённое значение. Если нет необходимости производить какие-либо групповые операции над полем, не рекомендуется включать его в запрос.

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

Таблица 1. Статистические функции SQL.

Функция SQL

Действие

Sum

Суммирование значений определенного поля

Avg

Вычисление среднего значения данных определен­ного поля

Min

Вычисление минимального значения поля

Max

Вычисление максимального значения поля

Count

Вычисление количества записей, отобранных запро­сом по условию

StDev

Вычисляется стандартное отклонение значений дан­ного поля для всех записей, отобранных запросом

First

Определяется первое значение в указанном поле за­писей, отобранных запросом

Last

Определяется последнее значение в указанном поле записей, отобранных запросом

Var

Вычисляется вариация2 значений данного поля для всех записей, отобранных запросом

Примеры итоговых запросов:

  1. Вычислить, сколько и на какую сумму продано товаров каждым продавцом.

Выполнение:

  • Ввести в запросный бланк поля: ФИО (табл. Продавец), Количество (табл. Продажи), Цена (табл. Товар);

  • Создать вычисляемое поле Стоимость с помощью Построителя выражений (формула приведена на рис. 5);

  • сформировать группы по полю ФИО из таблицы Продавец ( - Групповая операция);

  • в поле Количество и Стоимость ввести функцию Sum;

  • сохранить запрос под именем «Итоги».

Рис.5. Бланк итогового запроса

Рис.6. Результат итогового запроса

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

Пример: вывести список только тех продавцов, стоимость продаж которых больше средней стоимости.

В ыполнение:

  • Добавить в запрос Итоги условие:

>(SELECT AVG([Стоимость]) From Итоги)

Р ис.7. Бланк итогового запроса с условием и результат запроса.

  1. Вывести цену самого дорогого товара, проданного каждым продавцом.

Выполнение:

  • Ввести в запросный бланк поля ФИО (табл. Продавец), Цена (табл. Товар);

  • группы сформировать по полю ФИО из таблицы Продавец ( - Групповая операция);

  • в поле Цена задать функцию Мах (максимальное значение поля);

  • установить порядок сортировки в поле Цена – по убыванию

  • сохранить запрос под именем МахЦена.

Рис.8. Бланк запроса и результат запроса МахЦена

  1. Вывести итоговую сумму каждого проданного товара отдельно для каждого продавца.

Выполнение:

  • Выполнить запрос на основе запроса «Стоимость» - открыть его в режиме Конструктора;

  • включить группировку – - Групповая операция;

  • в поле СтоимостьПартии ввести функцию Sum;

Рис.9. Бланк итогового запроса (пример 4).

  • проверить работу запроса;

  • сохранить запрос под другим именем – Файл Сохранить как

Итог_Стоимость.

Примечание к примеру 4.

  1. В примере используется вложенное группирование:

    • вначале группируются фамилии продавцов,

    • внутри группы совпадающих значений ФИО создаются группы одинаковых названий товаров,

    • затем вычисляются суммы по группе товаров.

  2. Данный пример является примером многоэтапного запроса, т.е. выполняется запрос к таблице, являющейся результатом предыдущего запроса (1-й этап – запрос «Стоимость», 2-й этап – группирование данных в таблице запроса «Стоимость», результат – запрос «Итог_Стоимость» ).

Ограничение вывода результатов запроса

При просмотре результата запросов в больших БД пользователей часто интересует только часть записей результирующей таблицы.

Для этих целей в MS Access используется свойство Набор значений,

которому соответствует кнопка на панели инструментов окна

Конструктора запросов. С помощью этого свойства можно вывести за-

данное количество записей таблицы запроса.

В сочетании с командами сортировки (строка Сортировка: по возрастанию или по убыванию) можно вывести нужное количество записей с максимальными или минимальными значениями.