Запросы в Access
Лабораторная работа №5
Пример: Создание запросов для БД Подписка
Задание
Для БД Подпискасоздать следующие запросы:
1. Общая сумма выручки
2. Количество изданий, которые выписал каждый из подписчиков
3. Количество подписчиков каждого издания
4. Самое популярное издание с количеством подписчиков
5. Самое непопулярное издание с количеством подписчиков
6. Подписчик с максимальным количеством выписанных изданий
7. Сколько заплатил каждый из подписчиков
Выполнение
Рекомендация.
Запрос 1.Общая сумма выручки следует создавать в самую последнюю очередь.
Замечание.
Предполагается, что каждый подписчик выписывает необходимое издание только один раз.
* * *
Создание запроса “2 Количество изданий которые выписал каждый из подписчиков” (в названии запроса не используйте точки и запятые):
В результате необходимо получить таблицу из двух полей, в первом из которых перечислены фамилии всех имеющихся подписчиков, а во втором – указано число выписанных изданий для каждого из них.
2.1. В качестве исходных данных добавим в поле Запроса (Контекстное меню Добавить Таблицу…) Таблицы Подписчики и Подписка
2.2. Выберем 2 поля: Фамилия из Таблицы Подписчики и Код издания из Таблицы Подписка
2.3. Добавим опцию Групповые операции
2.4. Для поля Фамилия оставим операцию Группировка (то есть объединение всех одинаковых записей в одну), а для поля Код издания выберем операцию Count (Количество значений).
Выполним запрос (Перейдем в режим Таблицы или нажмем иконку “Красный восклицательный знак“).
В результате в левой колонке будут перечислены фамилии всех подписчиков (каждая будет упомянута только один раз), а в правой – количество изданий, которые выписал каждый из них (то есть число упоминаний уникальных кодов изданий в соответствующих каждой из фамилий записях).
* * *
Создание запроса “3 Количество подписчиков каждого издания “:
В результате необходимо получить таблицу из двух полей, в первом из которых перечислены все упомянутые издания, а во втором – указано число подписчиков для каждого из них.
3.1. В качестве исходных данных добавим в поле Запроса (Контекстное меню Добавить Таблицу…) Таблицы Издания и Подписка
3.2. Выберем 2 поля: Название издания из Таблицы Издания и Код подписчика из Таблицы Подписка
3.3. Добавим опцию Групповые операции
3.4. Для поля Название издания оставим операцию Группировка (То есть объединение всех одинаковых записей в одну), а для поля Код подписчика выберем операцию Count (Количество значений).
Выполним запрос. В результате в левой колонке будут перечислены названия всех упомянутых изданий (каждое будет упомянуто только один раз), а в правой – количество их подписчиков.
* * *
Создание запроса “4 Самое популярное издание с количеством подписчиков”
В результате необходимо получить таблицу из двух полей, в первом из которых упомянуто одно издание (или несколько, если у двух или нескольких изданий одинаковое количество подписчиков и оно максимальное), а во втором – указано его количество подписчиков.
4.1. Создадим вспомогательный запрос,– 4 1 Максимальное количество подписчиков для изданий, который в результате выдает только одно число – количество подписчиков у самого популярного издания.
Для этого добавим в поле Запроса (Контекстное меню Добавить Таблицу…) Запрос 3 Количество подписчиков каждого издания “, выберем только одно поле Count-Код подписчика (Количество подписчиков), добавим Групповые операции и выберем Max (Мак симальное значение).
4.2. В качестве исходных данных для основного запроса выберем опять же запрос 3 Количество подписчиков каждого издания и только что созданный вспомогательный запрос 4 1 Максимальное количество подписчиков для изданий.
4.3. Выберем оба поля запроса 3 Количество подписчиков каждого издания –Названия издания и Count-Код подписчика (Количество подписчиков)
4.4. Для поля Count-Код подписчика (Количество подписчиков) с помощью Построителя выражений в ячейке Условие отбора введем условие – равенства максимальному количеству подписчиков для изданий:
= [4 1 Максимальное количество подписчиков для изданий]![Max-Count-Код подписчика].
Выполним запрос. В результате в левой колонке будет приведено название самого популярного издания (или нескольких изданий), а в правой будет выведено количество его (их) подписчиков.
* * *
Создание запроса “5 Самое непопулярное издание с количеством подписчиков”
В результате необходимо получить таблицу из двух полей, в первом из которых упомянуто одно издание (или несколько, если у двух или нескольких изданий одинаковое количество подписчиков и оно минимально), а во втором – указано количество его подписчиков.
5.1. Данный запрос может быть получен аналогично предыдущему, с той лишь разницей, что в качестве вспомогательного будет использован запрос 5 1 Минимальное количество подписчиков для изданий, который в результате выдает только одно число – количество подписчиков у самого непопулярного издания.
Для этого добавим в поле Запроса (Контекстное меню Добавить Таблицу…) Запрос 3 Количество подписчиков каждого издания “, выберем только одно поле Count-Код подписчика (Количество подписчиков), добавим Групповые операции и выберем Min (Минимальное значение).
* * *
Создание запроса “6 Подписчик с максимальным количеством выписанных изданий”
В результате необходимо получить таблицу из двух полей, в первом из которых упомянута фамилия одного (или нескольких, если у двух или нескольких подписчиков одинаковое количество выписанных изданий и оно максимальное), а во втором – указано его количество выписанных изданий.
6.1. Создадим вспомогательный запрос,– 6 1 Максимальное количество выписанных одним подписчиком изданий, который в результате выдает только одно число – количество изданий, которое выписал самый “читающий” подписчик.
Для этого добавим в поле Запроса (Контекстное меню Добавить Таблицу…) Запрос 2 Количество изданий которые выписал каждый из подписчиков, выберем только одно поле Count-Код издания (Количество изданий), добавим Групповые операции и выберем Max (Максимальное значение).
6.2. В качестве исходных данных для основного запроса выберем опять же запрос 2 Количество изданий которые выписал каждый из подписчиков и только что созданный вспомогательный запрос 6 1 Максимальное количество выписанных одним подписчиком изданий.
6.3. Выберем оба поля запроса 2 Количество изданий которые выписал каждый из подписчиков –Фамилия и Count-Код издания (Количество изданий)
6.4. Для поля Count Count-Код издания (Количество изданий) с помощью Построителя выражений в ячейке Условие отбора введем условие – равенства максимальному количеству выписанных одним подписчиком изданий:
= [6 1 Максимальное количество выписанных одним подписчиком изданий]![Max-Count-Код издания]
Выполним запрос. В результате в левой колонке будет приведена фамилия (фамилии) самого “читающего” подписчика, а в правой будет выведено количество выписанных им изданий.
* * *
Создание запроса “7 Сколько заплатил каждый из подписчиков“:
В результате необходимо получить таблицу из двух полей, в первом из которых перечислены фамилии всех подписчиков, а во втором – указана сумма денег, которую выплатил за подписку каждый из них.
Указание. Сумма выплаченных каждым из подписчиков денег может быть получена как сумма произведений числа месяцев, на которое подписчик выписал издание на цену подписки за месяц.
7.1. В качестве исходных данных добавим в поле Запроса (Контекстное меню Добавить Таблицу…) все три Таблицы: Издания, Подписчики и Подписка
7.2. Выберем поле: Фамилия из Таблицы Подписчики
7.3. В качестве второго поля с помощью Построителя выражений построим произведение – Срок подписки (в месяцах) из таблицы Подписка умножить на Цена подписки на месяц из Таблицы Издания:
Выражение1: [Подписка]![Срок подписки (в месяцах)]*[Издания]![Цена подписки на месяц]
7.4. Добавим опцию Групповые операции
7.5. Для поля Фамилия оставим операцию Группировка (то есть объединение всех одинаковых записей в одну), а для поля Выражение1 выберем операцию Sum (Сумма).
Выполним запрос. В результате в левой колонке будут приведены фамилии подписчиков, а в правой будут выведены суммы выплаченных ими средств.
* * *
Создание запроса “1 Общая сумма выручки”
В результате необходимо получить только одно число – сумму денег, выплаченных всеми подписчиками.
8.1. В качестве исходных данных добавим в поле Запроса (Контекстное меню Добавить Таблицу…) Запрос 7 Сколько заплатил каждый из подписчиков
8.2. Выберем единственное поле Выражение1 (Сумму выплаченных каждым из подписчиков средств)
8.3. Добавим опцию Групповые операции
8.4. Для поля Выражение1 (Сумма выплаченных каждым из подписчиков средств) выберем операцию Sum(Суммирование).
Выполним запрос. В результате получим число – общую сумму выручки.