Пояснения к лабораторной работе №4_2

Проблемы при выполнении Лабораторной работе № 4_2, вызывали лишь некоторые из заданий.

Задание 10.
Используя таблицы Покупатели, Заказы, Описание заказа и Наборы (БД Фрукты) создать запросы, подсчитывающие:
сумму выплаченных денег каждым покупателем;
среднюю стоимость заказа;
количество заказов с суммой превышающей среднюю стоимость заказа;
стоимость последнего заказа для каждого покупателя.

а также

Задание 12.
Для таблицы Покупатели (БД Фрукты) создать, с помощью мастера Повторяющиеся записи, запрос:
общее число однофамильцев.

Рассмотрим ход их выполнения.

10. Используя таблицы Покупатели, Заказы, Описание заказа и Наборы (БД Фрукты) создать запросы, подсчитывающие:

* * *

4. сумму выплаченных денег каждым покупателем;

Здесь все достаточно просто.

Исходные данныевсе 4 упомянутые таблицы (Покупатели, Заказы, Описание заказа и Наборы )

В первое выводимое поле с помощью Построителя выражений, используя поля Таблицы ПокупателиФамилия и Имя, необходимо внести следующее выражение:

ФИО: [Покупатели]![Фамилия] & » » & [Покупатели]![Имя]

Во второе выводимое поле – используя, в свою очередь, поля Таблицы Описания заказовКоличество (в котором содержится информация о количестве заказанных наборов) и Таблицы НаборыЦена (в котором содержится информация о цене одного набора), необходимо внести выражение:

Потратил: [Опиcания заказов]![Количеcтво]*[Наборы]![Цена]

В ячейки Групповые операции – для первого поля (ФИО) внести операцию Группировка, а для второго поля (Потратил) – Sum (Сумма).

Запрос 10.4

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

Замечание. Второй возможный (хотя и менее интуитивно понятный) вариант записи выражения для поля Потратил:

Потратил: Sum([Опиcания заказов]![Количеcтво]*[Наборы]![Цена])

в этом случае для этого поля в качестве Групповой операции необходимо выбрать Выражение.

Запрос 10.4

В результате, естественно, будут получены те же 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 (т.е. стоимость заказа).

Необходимо также ввести групповые операции – для полей Фамилия и ИмяГруппировка, а для поля Выражение1Last (т.е. последнее значение).

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

* * *

12. Для таблицы Покупатели (БД Фрукты) создать, с помощью мастера Повторяющиеся записи, запрос:
— общее число однофамильцев.

Здесь все очень просто. После того, как с помощью Мастера Повторяющиеся записи создан и сохранен запрос, сформировавший Список покупателей-однофамильцев, необходимо лишь подсчитать их число.

Для этого при построении простого запроса необходимо в качестве исходной информации (вспомогательного запроса) воспользоваться имеющимся запросом Список покупателей-однофамильцев. После выбора единственного выводимого поля Фамилия, в качестве Групповой операции необходимо выбрать Count (Количество).

После выполнения запроса в качестве единственной результирующей записи и будет выдано искомое число – 11.