Перекрёстный запрос.
Параметрический запрос.
Рассмотренные запросы на выборку могут выполняться только с условием, указанным в конструкторе. Для получение сведений по данному полю с разными значениями необходимо использовать параметрический запрос. После запуска такого запроса выдаётся диалоговое окно и запросом параметра. Пользователь вводит значение параметра, после чего запрос работает аналогично рассмотренным выше. Построим параметрический запрос «Информация о фильме»:
- откроем объект Запросы;
- выберем команду Создать в режиме конструктора;
- добавим таблицу Фильм;
- перенесём во вторую половину окна Конструктора запросов все поля из таблицы ;
- в столбце с полем Название фильм в строку Условие отбора введём [Ведите название фильма] (Фраза в квадратных скобках);
Окно конструктора при этом будет выглядеть следующим образом:
Такой запрос может неоднократно использоваться для всех фильмов из БД.
Один из наиболее интересных запросов – перекрёстный. Он представляет собой таблицу, на пересечении столбцов и строчек которой лежат сведения необходимые пользователю.
Посмотрим, например кто из клиентов не вернул вовремя диск, название фильма, дату выдачи и сколько дней просрочен возврат. Для начала построим базовый запрос, содержащий необходимую информацию для перекрёстного запроса:
- откроем объект Запросы
- выберем команду Создать в режиме конструктора
- добавим таблицы Фильм, Клиент, Выдачи фильмов
- перенесём во вторую половину окна Конструктора запросов необходимые поля из таблиц:
ü поля Фамилия, Телефон из таблицы Клиенты;
ü поле Название фильма из таблицы Фильм;
ü поля Дата выдачи, Просрочено из таблицы Выдача фильмов ;
- по полю Просрочено введём условие отбора >0 ;
- сохраним запрос с именем «Базовый запрос».
Выполним этот запрос:
Базовый запрос является основой для перекрёстного запроса. Следующий шаг – создание самого перекрёстного запроса :
- выберем команду Создать – Перекрёстный запрос;
- в качестве источника укажем Запросы – Базовый запрос;
- выберем в качестве заголовков строк значения следующих полей: Фамилия, Телефон, Дата выдачи;
- выберем в качестве заголовков столбцов значения поля Название фильма;
- в ячейках, находящихся на пересечении вычислим сумму для значений поля просрочено (дней);
- сохраним запрос.
Результат выполнения запроса будет иметь вид:
![]() |
Следует отметить, что итоговое значение вычисляется для значений, выбранных в качестве заголовков строк.