
лекции / лекции по базам данных в Access / №5
.RTFИтоговые запросы
Таблица содержит большое количество записей. Однако вы можете проанализировать данные из таблицы, вычислить итоговые значения и представить результат в наглядном виде. Для определения суммы значений полей или нахождения среднего следует создать итоговый запрос. Для его создания, как и для обычного запроса, откройте новое окно конструктора запросов. Далее выберите используемые в запросе таблицы, а затем перенесите в бланк запроса нужные поля.
Для создания итогового запроса, находясь в конструкторе запросов, выберите Вид/Групповые операции или нажмите кнопку Групповые операции на панели инструментов. В бланке запроса появится новая строка с наименованием Групповая операция. В этой строке вы должны указать тип выполняемого вычисления. Табл. 1 содержит перечень допустимых видов итоговых операций, которые можно выбрать из раскрывающегося списка в строке Групповая операция.
Табл. 1 Типы операций, доступные в строке Групповая операция бланка запроса
Значение |
Выполняемая операция |
Sum |
Сложение |
Avg |
Среднее значение |
Min |
Минимальное значение |
Мах |
Максимальное значение, |
Count |
Количество записей, содержащих значения |
StDev |
Стандартное отклонение |
Var |
Дисперсия |
First |
Значение в первой записи |
Last |
Значение в последней записи |
Определение суммы всех значений по полю
Давайте создадим запрос для определения суммы всех значений отдельного поля. Например, определим сумму, которую предстоит выплатить в качестве заработной платы сотрудникам предприятия. Заработная плата каждого из сотрудников представлена в таблице Сотрудники. Для создания запроса, подсчитывающего общую сумму, выполните следующие действия:
1. Откройте новое окно конструктора запросов и добавьте в него
таблицу Сотрудники.
2. Добавьте в бланк запроса прле Зарплата.
3. Выберите команду Вид | Групповые операции для добавления в бланк запроса строки Групповая операция (если она в настоящий момент отсутствует).
4 Нажмите кнопку мыши в первом столбце строки Групповая операция и из раскрывающегося списка выберите значение Sum
5. Нажмите кнопку Запуск и просмотрите результаты в режиме таблицы. Обратите внимание, что результирующая таблица содержит всего лишь одну запись.
Определение максимального и среднего значения
MS Access позволяет вычислить несколько итоговых значений по одному и тому же полю. Предположим, вы хотите узнать не только общую сумму, которую необходимо выплатить в качестве заработной платы, но также максимальное и среднее значение заработной платы. Для решения этой задачи вернитесь в окно конструктора запросов предыдущего запроса и добавьте в бланк запроса поле Зарплата еще два раза. Для второго поля Зарплата из раскрывающегося списка в строке Групповая операция выберите Мах, а для третьего — Avg. Выполните запрос и просмотрите интересующие вас данные.
Задание условий выборки в итоговых запросах
Условие выборки в итоговых запросах задается почти так же, как и в обычных запросах, но все же существуют некоторые отличия. Допустим, что нас интересуют итоговые значения не по всем сотрудникам предприятия, а только по определенной категории (например, программисты). Для этого модифицируйте бланк запроса, созданного в предыдущем примере, следующим образом.
1 Добавьте в бланк запроса поле Должность. Сразу же после добавления этого поля в строке Групповая операция устанавливается значение Группировка.
2 Для ввода условия выборки необходимо изменить это значение на Условие При выборе этого значения автоматически снимается флажок Вывод на экран, и поле не выводится на экран при выполнении запроса.
3. После этого, как и в обычных запросах, в строке Условие отбора введите требуемое условие. Для определения итоговых значений по заработной плате программистов: Программист.
4. Для просмотра результатов выборки нажмите кнопку Запуск.
Группировка полей запроса
Группировка позволяет получить вычисляемую информацию о подгруппах записей в таблице. Например, сгруппировав данные в таблице Заказы по полю Код товара, можно получить сведения о продажах товаров каждого вида.
Как обычно, создание запроса начнете с добавления таблицы “Заказы” в окно конструктора запросов. Далее выполните следующие действия.
1. В первый столбец бланка запроса поместите поле Код товара.
2. Во второй столбец поместите Продано.
3. Выберите команду Вид | Групповые операции для добавления в бланк запроса строки Групповая операция.
4. В строке Групповая операция столбца Код товара установите значение Группировка, а для столбца Продано — значение Sum.
5. Выполните запрос.
6. Предположим вас интересует дополнительная информация ( том, сколько единиц товара каждого типа закупил каждый из покупателей. Поэтому добавим в запрос поле Код клиента и в строке Групповая операция оставим значение Группировка. В этом случае записи сгруппированы по каждому типу проданных товаров для каждого покупателя.
Включение в запрос выражений
Access представляет вам возможность выполнять итоговые операции над вычисляемыми полями выборки. Например, таблица Клиенты содержит сведения о покупателях, а таблица Заказы – о количестве товара каждого типа, проданного в каждой партии, и цены единицы изделия. На основании этой информации вы можете вычислить итоговую стоимость каждого товара в каждой конкретной покупке покупателя.
1. Откройте новое окно конструктора запросов и добавьте в него таблицы Клиенты и Заказы.
2. В бланк запроса поместите поля Фамилия, Имя и Отчество (таблица Клиенты) и Код товара (таблица Заказы).
3. В бланк запроса добавьте вычисляемое поле и введите для него выражение для вычисления стоимости партии товаров:
Стоимость: [Заказы]![Продано]*[Заказы]![Цена]
4. Нажмите кнопку Групповые операции на панели инструментов для добавления в бланк запроса строки Групповая операция.
5. В строке Групповая операция первых четырех столбцов установите значение Группировка, а для столбца, содержащего выражение — значение Sum.
6. Выполните запрос и вы увидите список клиентов и итоговую стоимость проданных им товаров.
Использование свойства Набор значений для ограничения результатов выборки
Достаточно часто при просмотре результата запросов вас интересует только часть записей результирующей таблицы. В MS Access для достижения этих целей используется свойство Набор значений. Вы можете указать Access, чтобы он выводил 5, 25 или 100 записей с максимальными или минимальными значениями. Можно также установить вывод 5-ти или 25-ти процентов всех записей выборки. Вы можете установить это значение в окне свойств запроса , но намного проще для этих целей использовать список, расположенный правее кнопки Групповые операции на панели инструментов окна конструктора запросов. Нажмите на кнопку раскрытия списка, и вы увидите все возможные значения этого свойства. Для использования свойства Набор значений необходимо указать в бланке запроса критерий сортировки записей: по возрастанию или убыванию. В предыдущих примерах мы более часто использовали сортировку по возрастанию. При выполнении же итоговых операций более наглядной может оказаться сортировка по убыванию, так как вас, прежде всего, могут интересовать максимальные значения.