Создание многотабличных запросов
Выше рассматривалась технология создания запросов на основе одного запроса. Часто при создании запросов используется несколько исходных таблиц/запросов, которые могут быть связанны или не связаны между собой. Связь в окне схемы данных бланка запроса устанавливается по связующим полям таблиц/запросов аналогично связям в схеме данных.
Задание 6. Вывести следующую информацию о счетах покупателей: номер счета, наименование покупателей, дата выписки счета.
Алгоритм выполнения задания:
1. Создать новый запрос. Исходные таблицы — СЧЕТ, ПОКУПАТЕЛЬ.
2. Так как выбранные таблицы включены в схему данных БД, то связь между таблицами по полю код покупателя установилась автоматически. Проверить наличие связи.
3. Выбрать необходимые поля. Из таблицы СЧЕТ — поля: НОМЕР СЧЕТА, ДАТА ВЫПИСКИ СЧЕТА. Из таблицы ПОКУПАТЕЛЬ — поля: наименование ОРГАНИЗАЦИИ.
4. Запустить запрос.
5. Сохранить запрос под именем 6_счета_покупателей
для каждого номера счета определён код покупателя и в процессе выполнения запроса для каждого кода покупателя из таблицы ПОКУПАТЕЛЬ находится соответствующие наименование организации.
Бланк запроса в режиме конструктора представлен на Рисунок 11.
Рисунок 11 Бланк запроса задания 6
При необходимости возможно изменение параметров объединения (связи) исходных таблиц/запросов.
Задание 7. Вывести информацию о тех покупателях, которым не выписывались счета.
Для реализации задачи необходим список всех покупателей (содержится в таблице ПОКУПАТЕЛЬ) и список счетов покупателей (таблица СЧЕТ).
Алгоритм выполнения задания:
1. Создать новый запрос. Исходные таблицы — СЧЕТ, ПОКУПАТЕЛЬ.
2. Проверить наличие связи.
3. При существующей связи из таблиц будут выбираться те данные, для которых значения поля КОД ПОКУПАТЕЛЯ совпадают. Для реализации задачи сначала необходимо вывести полный список покупателей с номерами счетов. Требуется изменить параметры объединения таблиц. При помощи мышки выделить существующую связь (щелкнуть по линии, соединяющей таблицы, линия станет жирной) и нажать левую кнопку мышки. В ниспадающем меню выбрать пункт параметры объединения. Другой способ: выделить существующую связь, пункт главного меню ВИД, команда параметры объединения (Рисунок 12).
Рисунок 12 Диалоговое окно ПАРАМЕТРЫ ОБЪЕДИНЕНИЯ
4. В соответствии с рассуждениями п.3 установить переключатель на пункте 2 (см. Рисунок 12). Нажать кнопку ОК. Убедиться, что связь изменилась. Направление связи (отражается стрелкой) от таблицы ПОКУПАТЕЛЬ к таблице СЧЕТ.
5. Выбрать поля Код покупателя, Наименование покупателя, НОМЕр счета.
6. Запустить запрос.
7. В режиме таблицы (просмотра запроса) в записях клиентов, которым не выписывались счета значение поля НОМЕР СЧЕТА пустое (см. Таблица 1).
Таблица 1
Запрос1 | ||
Код покупателя | Наименование ор> | Номер счета |
ТОО "Чистотел" | ||
ТОО "Чистотел" | ||
ТОО "Невский" |
8. Вернуться в режим конструктора запроса.
9. Для поля НОМЕР СЧЕТА в строке УСЛОВИЯ ОТБОРА установить условие IS NULL.
10. Снять флажок ВЫВОД НА ЭКРАН для поля НОМЕР СЧЕТА.
11. Просмотреть результат выполнения запроса.
12. Сохранить запрос под именем 7_НЕОХВАЧЕННЫЕ_ПОКУПАТЕЛИ
Бланк запроса в режиме конструктора представлен на Рисунок 13.
Рисунок 13 Бланк запроса задания 6
Задание 1_5. для самостоятельной работы. Вывести следующую информацию о продажах покупателей: дата продажи, наименование организации, наименование товара, количество проданного.
Задание 1_6. для самостоятельной работы. Для заданного товара вывести список продаж по выписанным счетам, содержащий следующую информацию: дата продажи, номер счета, наименование организации, количество проданного.