Проблемы при выполнении Лабораторной работе № 4_2, вызывали лишь некоторые из заданий.
Задание 10.
Используя таблицы Покупатели, Заказы, Описание заказа и Наборы (БД Фрукты) создать запросы, подсчитывающие:
— сумму выплаченных денег каждым покупателем;
— среднюю стоимость заказа;
— количество заказов с суммой превышающей среднюю стоимость заказа;
— стоимость последнего заказа для каждого покупателя.
а также
Задание 12.
Для таблицы Покупатели (БД Фрукты) создать, с помощью мастера Повторяющиеся записи, запрос:
— общее число однофамильцев.
Рассмотрим ход их выполнения.
10. Используя таблицы Покупатели, Заказы, Описание заказа и Наборы (БД Фрукты) создать запросы, подсчитывающие:
* * *
4. сумму выплаченных денег каждым покупателем;
Здесь все достаточно просто.
Исходные данные — все 4 упомянутые таблицы (Покупатели, Заказы, Описание заказа и Наборы )
В первое выводимое поле с помощью Построителя выражений, используя поля Таблицы Покупатели — Фамилия и Имя, необходимо внести следующее выражение:
ФИО: [Покупатели]![Фамилия] & » » & [Покупатели]![Имя]
Во второе выводимое поле – используя, в свою очередь, поля Таблицы Описания заказов – Количество (в котором содержится информация о количестве заказанных наборов) и Таблицы Наборы – Цена (в котором содержится информация о цене одного набора), необходимо внести выражение:
Потратил: [Опиcания заказов]![Количеcтво]*[Наборы]![Цена]
В ячейки Групповые операции – для первого поля (ФИО) внести операцию Группировка, а для второго поля (Потратил) – Sum (Сумма).
В результате выполнения запроса для каждого из 285 покупателей будет указана сумма выплаченных денег.
Замечание. Второй возможный (хотя и менее интуитивно понятный) вариант записи выражения для поля Потратил:
Потратил: Sum([Опиcания заказов]![Количеcтво]*[Наборы]![Цена])
в этом случае для этого поля в качестве Групповой операции необходимо выбрать Выражение.
В результате, естественно, будут получены те же 285 записей.
Более того, следует отметить, что после сохранения Первого варианта Access автоматически преобразует Запрос во Второй вариант, так что именно он будет рассматриваться далее.
* * *
5. среднюю стоимость заказа;
Для этого запроса рекомендуется
5.1. На первом шаге – сделать вспомогательный запрос, выдающий в качестве результата Стоимость каждого заказа.
Исходные данные — таблицы Заказы, Описание заказа и Наборы
В качестве первого выводимого поля используется уникальное поле Код заказа из Таблицы Описания заказов;
Во второе выводимое поле — с помощью Построителя выражений, используя уже упомянутые поля Количество из Таблицы Описания заказов и Цена из Таблицы Наборы, необходимо внести ранее использованное выражение:
Выражение1: Sum([Опиcания заказов]![Количеcтво]*[Наборы]![Цена])
В ячейки Групповые операции опять же – для первого поля (Код заказа) внести операцию Группировка, а для второго поля (Выражение1 – его можно заменить на более осмысленное наименование, например, Стоимость заказа) – операцию Выражение.
В результате выволнения данного запроса (Стоимость каждого заказа) будет получена стоимость каждого из 402 заказов.
5.2. На втором шаге, с использованием в качестве исходных данных построенного вспомогательного запроса Стоимость заказов – построить запрос, выдающий Среднюю стоимость заказа.
При «Добавлении таблицы» в исходных данных – необходимо добавить лишь запрос «Стоимость заказов» .
Далее в качестве единственного выводимого поля добавить упомянутое поле Выражение1 (в котором содержится информация о стоимость каждого заказа), а в качестве Групповой операции – Avg (вычисление среднего значения).
В результате выполнения данного запроса – назовем его Средняя стоимость заказа — и будет получена необходимая информация о средней стоимости заказа — 321,40р.
* * *
6. количество заказов с суммой превышающей среднюю стоимость заказа;
В данном случае
6.1. На первом шаге — необходимо выбрать из всех 402 заказов те, стоимость которых превышает упомянутую среднюю стоимость заказа, т.е. 321,40р.
Для этого в качестве исходных данных необходимо взять два запроса:
- во-первых, Стоимость каждого заказа (запрос сделан на первом шаге выполнения предыдущего задания),
- во-вторых, Средняя стоимость заказа (этот запрос сделан, в свою очередь, на втором шаге выполнения предыдущего задания).
В качестве полей строящегося запроса нужно выбрать поля запроса Стоимость каждого заказа — Код заказа и Выражение1 (если это поле ранее не заменено на Стоимость заказа).
Далее необходимо с помощью построителя выражений для поля Выражение 1 задать Условие отбора:
>[Ср стоимость заказа]![Avg-Выражение1]
В результате выполнения данного запроса — назовем его Заказы со стоимостью выше средней получим список заказов (151 запись), стоимость которых и будет выше упомянутых 321,40р.
6.2. На втором шаге остается создать запрос, который выдает упомянутое количество – а именно 151.
Для этого в качестве исходной информации используется построенный запрос Заказы со стоимостью выше средней, в качестве выводимого поля можно выбрать любое из двух имеющихся полей, например, Код заказа, а в качестве Групповой операции задается Count (Количество).
В результате выполнения данного запроса — назовем его Количество заказов с суммой превышающей среднюю стоимость заказа — будет выдана таблица, состоящая из одной записи – 151.
* * *
7. стоимость последнего заказа для каждого покупателя.
7.1. На первом шаге для каждого покупателя выведем все его заказы с их стоимостью. Для этого в качестве исходных данных надо воспользоваться всеми упомянутыми Таблицами, а именно Покупатели, Заказы, Описания заказов, Наборы.
В качестве полей строящегося запроса необходимо выбрать Фамилия и Имя из таблицы Покупатели, далее- поле Код заказа из Таблицы Заказы, а далее – в качестве четвертого поля — построить уже использовавшееся Выражение (для подсчета стоимости заказов)
Выражение1: Sum([Опиcания заказов]![Количеcтво]*[Наборы]![Цена])
В качестве Групповой операции для первых трех полей (Фамилия, Имя, Код заказа) необходимо выбрать Группировку, а для четвертого поля Выражение1 – соответственно, Выражение.
В результате выполнения данного Вспомогательного запроса получим список из 402 заказов, сделанных покупателями и их стоимость, при этом каждому из покупателей может соответствовать несколько записей заказов с разными Кодами заказов и разной стоимостью.
7.2. На втором шаге выберем из 402 записей предыдущего запроса лишь те, которые соответствуют последним заказам. Для этого в качестве исходной информации необходимо выбрать Вспомогательный запрос, в качестве выводимых полей – поля Фамилия, Имя и Выражение1 (т.е. стоимость заказа).
Необходимо также ввести групповые операции – для полей Фамилия и Имя – Группировка, а для поля Выражение1 – Last (т.е. последнее значение).
В результате выполнения запроса получим список из 285 заказов, который каждый из покупателей сделал последним.
* * *
12. Для таблицы Покупатели (БД Фрукты) создать, с помощью мастера Повторяющиеся записи, запрос:
— общее число однофамильцев.
Здесь все очень просто. После того, как с помощью Мастера Повторяющиеся записи создан и сохранен запрос, сформировавший Список покупателей-однофамильцев, необходимо лишь подсчитать их число.
Для этого при построении простого запроса необходимо в качестве исходной информации (вспомогательного запроса) воспользоваться имеющимся запросом Список покупателей-однофамильцев. После выбора единственного выводимого поля Фамилия, в качестве Групповой операции необходимо выбрать Count (Количество).
После выполнения запроса в качестве единственной результирующей записи и будет выдано искомое число – 11.