Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по Access 2003.doc
Скачиваний:
4
Добавлен:
26.04.2019
Размер:
744.96 Кб
Скачать

3.5. Запросы к связанным таблицам

Обычно в запросах используются поля из разных таблиц. Так, в таблице ЗАКАЗ нет фамилий покупателей и названий товаров, а есть только их коды. Для получения полной информации необходимо в запросе использовать три таблицы: ЗАКАЗ, ТОВАР, ПОКУПАТЕЛЬ. При построении таких запросов в верхней части бланка QBE открываются все необходимые таблицы вместе с их связями, которые появляются автоматически. Затем в нижнюю часть банка запроса перетаскиваются нужные поля из разных таблиц. Полезно указывать имена таблиц, из которых берутся поля, так как часто имена некоторых полей в разных таблицах совпадают. Для этого в режиме Конструктора в верхнем меню выбираются пункты Вид/ Имена таблиц, в результате в бланке QBE появляется строка с именами таблиц.

Создадим запрос “Покупатели и даты” для таблиц ЗАКАЗ и ПОКУПАТЕЛЬ с полями Фамилия ИО, Код заказа, Дата продажи в указанном порядке. Полученный список должен быть отсортирован по фамилиям покупателей в порядке возрастания и датам в порядке убывания. Для этого откроем таблицы ПОКУПАТЕЛЬ и ЗАКАЗ (связь по полю Код покупателя уже установлена) и перетащим указанные выше поля в бланк QBE. Введем сортировку в указанном порядке.

  1. Создать запрос “Покупки клиента” с вводом начала фамилии в качестве параметра. Запрос содержит поля Фамилия ИО, Наименование, Код заказа, Дата продажи. Условие отбора будет иметь вид: Like [ФИО] & ”*”.

  2. Создать запрос “Заказы со стоимостью“, содержащий поля Фамилия ИО, Наименование, Код заказа, Количество товара, Цена и вычисляемое поле Стоимость: [Цена]*[Количество товара].

3.6. Запросы с группировкой данных

Часто запросы создаются для анализа данных в таблицах, причем с использованием различных критериев для отбора нужных записей. При этом все записи с одинаковыми значениями в указанном поле группируются в результате запроса в одну новую запись, а по другим полям выполняются вычисления. Выделяются две группы полей: одна для группировки записей, вторая для подсчета итогов. Для разработки таких запросов используется пиктограмма Групповые операции или пункты меню Вид / Групповые операции. Имеются следующие групповые операции: Sum – сумма значений поля, Avg – среднее значение поля, Min, Max – минимальное и максимальное значение в поле, Count – количество значений в поле и другие (см. Справку Access). Можно использовать пункты меню Выражение для формирования более сложных операций вычисления итогов и Условие для задания условий отбора записей, не совпадающее с критерием группировки, соответствующее поле будет невидимым.

Создадим запрос “Итог по датам” для таблицы ЗАКАЗ, содержащий поля Дата продажи и Количество товара. Будем вычислять число единиц товара, проданных в течение каждого дня, и выведем общий список по дням. Для этого после выбора таблицы ЗАКАЗ и переноса колонок с именами полей в нижнюю часть бланка QBE надо выбрать в меню пункты Вид / Групповые операции или нажать кнопку . В бланке QBE появится строка Групповая операция. В поле Дата продажи выберем Группировка (т.е. записи будут сгруппированы по датам продажи), в поле Количество товара выберем Sum. Дополнительно введем в колонке Дата продажи сортировку по датам в порядке убывания.

  1. Создать запрос “Итоги по покупателям” для таблиц ПОКУПАТЕЛЬ и ЗАКАЗ, содержащие поля Фамилия ИО и Количество товара. Вычислить количество товаров, купленное каждым покупателем.

  2. Создать запрос “Число покупок” для таблиц ПОКУПАТЕЛЬ и ЗАКАЗ, содержащие поля Фамилия ИО и Количество товара. Вычислить число покупок, сделанных каждым покупателем (функция Count). Использовать предыдущий запрос, скопировав его.

  3. Создать запрос “Сумма денег по покупателям”, содержащие поля Фамилия ИО и вычисляемое поле Сумма, содержащее сумму, заплаченную покупателем за купленные им товары. Для вычисления суммы надо количество товара умножить на его цену. Запрос будет использовать три таблицы: ТОВАР, ПОКУПАТЕЛЬ и ЗАКАЗ.

  4. Создать запрос “Среднее количество проданных товаров по категориям” для таблиц ЗАКАЗ, КАТЕГОРИЯ ТОВАРА и ТОВАР, содержащий поля Значение и Количество товара. Использовать функцию Avg.