
- •Содержание
- •Работа с базой данных
- •Запросы
- •Создание запроса
- •Запрос на выборку
- •Параметрический запрос
- •Запросы с вычисляемыми полями
- •Итоговые запросы
- •Перекрестный запрос
- •Запросы на изменение данных в таблицах
- •Задания по теме «Запросы»
- •Создание формы
- •Редактирование формы
- •Формы для связанных таблиц
- •Связывание форм с помощью командных кнопок
- •Создание многостраничных форм
- •Задания по теме «Формы»
- •Создание отчета
- •Элементы управления в отчете
- •Сортировка и группировка информации
- •Примеры конструирования отчётов
- •Вычисление итогов и процентов
- •Создание и внедрение подчинённых отчётов
- •Создание почтовых наклеек
- •Просмотр и печать отчёта
- •Задания по теме «Отчёты»
- •Контрольные вопросы
- •Литература
- •Приложение 1. Кнопки панели элементов управления
Итоговые запросы
Итоговые запросы позволяют производить итоговые вычисления по группам данных. Создание итогового запроса происходит в 2 этапа:
Группирование данных по значениям определённого поля.
Выбрать команду Вид Групповая операция или в режиме Конструктора запроса нажать кнопку
Групповые операции на панели инструментов.
Обратить внимание на появление строки «Групповая операция» в бланке запроса. Команда Групповая операция дает установку Группировка для любого поля, занесённого в бланк запроса. В этом случае записи таблицы группируются, но итоги не подводятся.
Примечание. Поле, значения которого нужно группировать, желательно поставить первым в списке выводимых полей.
Вычисление итогов в группе.
Заменить в соответствующем поле установку Группировка в строке Групповая операция на конкретные итоговые функции. Задать нужную функцию можно, указав её в раскрывающемся списке Группировка.
Примечания.
MS Access предоставляет 9 статистических функций SQL, обеспечивающих выполнение групповых операций (табл.1).
В раскрывающемся списке строки Групповая операция также имеется установка Выражение. Выбрав её, можно задать в строке Поле вычисляемое выражение, в котором используется одна или несколько итоговых функций.
Строка Групповая операция в каждом поле должна иметь определённое значение. Если нет необходимости производить какие-либо групповые операции над полем, не рекомендуется включать его в запрос.
Группировка в двух и более полях означает вложенное группирование, т.е. создание группы внутри группы, заданной в предыдущем столбце (см. ниже пример 4).
Таблица 1. Статистические функции SQL.
Функция SQL |
Действие |
Sum |
Суммирование значений определенного поля |
Avg |
Вычисление среднего значения данных определенного поля |
Min |
Вычисление минимального значения поля |
Max |
Вычисление максимального значения поля |
Count |
Вычисление количества записей, отобранных запросом по условию |
StDev |
Вычисляется стандартное отклонение значений данного поля для всех записей, отобранных запросом |
First |
Определяется первое значение в указанном поле записей, отобранных запросом |
Last |
Определяется последнее значение в указанном поле записей, отобранных запросом |
Var |
Вычисляется вариация2 значений данного поля для всех записей, отобранных запросом |
Примеры итоговых запросов:
Вычислить, сколько и на какую сумму продано товаров каждым продавцом.
Выполнение:
Ввести в запросный бланк поля: ФИО (табл. Продавец), Количество (табл. Продажи), Цена (табл. Товар);
Создать вычисляемое поле Стоимость с помощью Построителя выражений (формула приведена на рис. 5);
сформировать группы по полю ФИО из таблицы Продавец (
- Групповая операция);
в поле Количество и Стоимость ввести функцию Sum;
сохранить запрос под именем «Итоги».
Рис.5. Бланк итогового запроса
Рис.6. Результат итогового запроса
В итоговые запросы можно включать Условие отбора, причём с применением статистических (групповых) функций.
Пример: вывести список только тех продавцов, стоимость продаж которых больше средней стоимости.
В
ыполнение:
Добавить в запрос Итоги условие:
>(SELECT AVG([Стоимость]) From Итоги)
Р
ис.7.
Бланк итогового запроса с условием
и результат запроса.
Вывести цену самого дорогого товара, проданного каждым продавцом.
Выполнение:
Ввести в запросный бланк поля ФИО (табл. Продавец), Цена (табл. Товар);
группы сформировать по полю ФИО из таблицы Продавец (
- Групповая операция);
в поле Цена задать функцию Мах (максимальное значение поля);
установить порядок сортировки в поле Цена – по убыванию
сохранить запрос под именем МахЦена.
Рис.8. Бланк запроса и результат запроса МахЦена
Вывести итоговую сумму каждого проданного товара отдельно для каждого продавца.
Выполнение:
Выполнить запрос на основе запроса «Стоимость» - открыть его в режиме Конструктора;
включить группировку – - Групповая операция;
в поле СтоимостьПартии ввести функцию Sum;
Рис.9. Бланк итогового запроса (пример 4).
проверить работу запроса;
сохранить запрос под другим именем – Файл Сохранить как
Итог_Стоимость.
Примечание к примеру 4.
В примере используется вложенное группирование:
вначале группируются фамилии продавцов,
внутри группы совпадающих значений ФИО создаются группы одинаковых названий товаров,
затем вычисляются суммы по группе товаров.
Данный пример является примером многоэтапного запроса, т.е. выполняется запрос к таблице, являющейся результатом предыдущего запроса (1-й этап – запрос «Стоимость», 2-й этап – группирование данных в таблице запроса «Стоимость», результат – запрос «Итог_Стоимость» ).
Ограничение вывода результатов запроса
При просмотре результата запросов в больших БД пользователей часто интересует только часть записей результирующей таблицы.
Для
этих целей в MS Access используется свойство
Набор
значений,
которому соответствует кнопка на панели инструментов окна
Конструктора запросов. С помощью этого свойства можно вывести за-
данное количество записей таблицы запроса.
В сочетании с командами сортировки (строка Сортировка: по возрастанию или по убыванию) можно вывести нужное количество записей с максимальными или минимальными значениями.