Перекрёстный запрос.

Параметрический запрос.

Рассмотренные запросы на выборку могут выполняться только с условием, указанным в конструкторе. Для получение сведений по данному полю с разными значениями необходимо использовать параметрический запрос. После запуска такого запроса выдаётся диалоговое окно и запросом параметра. Пользователь вводит значение параметра, после чего запрос работает аналогично рассмотренным выше. Построим параметрический запрос «Информация о фильме»:

  • откроем объект Запросы;
  • выберем команду Создать в режиме конструктора;
  • добавим таблицу Фильм;
  • перенесём во вторую половину окна Конструктора запросов все поля из таблицы ;
  • в столбце с полем Название фильм в строку Условие отбора введём [Ведите название фильма] (Фраза в квадратных скобках);

Окно конструктора при этом будет выглядеть следующим образом:

Такой запрос может неоднократно использоваться для всех фильмов из БД.

 

Один из наиболее интересных запросов – перекрёстный. Он представляет собой таблицу, на пересечении столбцов и строчек которой лежат сведения необходимые пользователю.

Посмотрим, например кто из клиентов не вернул вовремя диск, название фильма, дату выдачи и сколько дней просрочен возврат. Для начала построим базовый запрос, содержащий необходимую информацию для перекрёстного запроса:

  • откроем объект Запросы
  • выберем команду Создать в режиме конструктора
  • добавим таблицы Фильм, Клиент, Выдачи фильмов
  • перенесём во вторую половину окна Конструктора запросов необходимые поля из таблиц:

ü поля Фамилия, Телефон из таблицы Клиенты;

ü поле Название фильма из таблицы Фильм;

ü поля Дата выдачи, Просрочено из таблицы Выдача фильмов ;

  • по полю Просрочено введём условие отбора >0 ;
  • сохраним запрос с именем «Базовый запрос».

Выполним этот запрос:

 

Базовый запрос является основой для перекрёстного запроса. Следующий шаг – создание самого перекрёстного запроса :

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

 

Результат выполнения запроса будет иметь вид:

 
 

 


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