Построение запросов в конструкторе

А теперь рассмотрим построение запросов в конструкторе. Для этого выполните команду

Создание → Конструктор запросов →Добавить таблицу(Покупки) →Закрыть окноДобавление таблицы

Ранее мы уже построили немало запросов в конструкторе. Мы уже умеем выбирать записи, удовлетворяющие некоторому условию, а также производить сортировку по нескольким полям. Microsoft Access применяет сортировку по полям в порядке их расположения в бланке запроса слева направо.

В результате выполнения запроса Microsoft Access создаёт набор записей, содержащий отобранные данные. Нужно понимать, однако, в отличие от реальной таблицы набор записей физически не существует в базе данных. Microsoft Access создаёт его из данных таблиц только во время выполнения запроса.

Как вы помните, при задании условия отбора используются операторы сравнения =, <>, <, <=, >, >=. Для объединения нескольких условий используются логические операторы OR (ИЛИ) – логическое сложение и AND (И) – логическое умножение. Кроме того, для отбора данных Microsoft Access предоставляет специальные операторы: BETWEEN, IN, LIKE.

При вводе данных, представляющих дату или время, нужно заключать их между символами «#», например: #12.04.2015# или #17:30#. При задании условий отбора для дат и времени используются специальные функции:

Day (дата)– возвращает значение для дня месяца в диапазоне от 1 до 31.

Month (дата) – возвращает значение месяца в диапазоне от 1 до 12.

Year (дата) - возвращает значение года от 100 до 9999.

Weekday (дата) – по умолчанию возвращает целое число от 1 (воскресенье) до 7 (суббота), соответствующее дню недели.

Date() – возвращает текущую дату.

Далее мы научимся работать с групповыми операциями, а так же создавать запросы с вычисляемыми полями.

Итоговый запрос

Иногда нас интересуют не отдельные записи таблицы, а итоговые значения по группам данных, например, количество покупок каждого покупателя, или общая сумма, на которую были совершены покупки каждым из них. Для задания вычислений итоговых значений нужно добавить Групповые операции, нажав на кнопку Итоги (с изображением знака суммирования) на панели Конструктор Работа с запросами. В результате в бланке запроса появится строка Групповая операция. Для вычисления итогов нужно заменить установкуГруппировкав строке Групповая операция на конкретные итоговые функции: SUM, AVG, MAX, MIN,COUNT и т.п. Можно построить итоговую функцию с помощью выражения, например, MAX(Цена)-MIN(Цена).

Вернёмся к нашему примеру, в бланке запроса выберите последовательно поля Фамилия, Стоимость покупки, Фамилия. Установив курсор на сетке, через контекстное меню добавьте Итоги. У вас появится в бланке запроса ещё одна строка Групповая операция. Как мы уже сказали, эта операция позволяет создавать группы по одинаковым значениям поля и для каждой группы производить вычисления с помощью агрегирующих функций. Для каждой из групп можно суммировать значения (например, находить стоимость всех покупок клиента), подсчитывать количество (например, количество покупок), находить среднее, минимальное, максимальное значение и т.д.

В строке Групповая операция во втором поле из выпадающего списка выберите функцию SUM, а в третьем поле функцию COUNT.

Построение запросов в конструкторе - student2.ru

Выполните запрос, как обычно, нажав на кнопку Выполнить (с красным восклицательным знаком).

Построение запросов в конструкторе - student2.ru

Вы видите, что все записи сгруппированы по фамилиям и для каждого покупателя подсчитаны суммарные покупки и количество покупок. Снова откройте этот запрос в режиме конструктора. Устанавливая курсор на названии второго поля, через контекстное меню выберите пункт Свойства, в строке Формат поля из выпадающего списка выберите денежный формат, в строке Подписьвведите: Суммарные покупки.

Построение запросов в конструкторе - student2.ru

Для третьего поля аналогично добавьте подпись Количество покупок.

Снова выполните запрос, посмотрите, как изменились заголовки в столбцах.

Выбор групп

В итоговом запросе можно отбирать не все группы, а только те, которые удовлетворяют некоторому условию. Для этого в поле, по которому вычисляются итоги (например, SUM или COUNT) в строке Условие отбора нужно ввести то условие, по которому нужно произвести отбор групп. Например, выведите список покупателей, совершивших более трёх покупок, для этого в соответствующем поле задайте условие >2.

Построение запросов в конструкторе - student2.ru

Запрос с параметром

До сих пор мы вводили условия отбора в бланке запроса в режиме конструктора. Можно включить в запрос параметр, и при каждом выполнении запроса Microsoft Access будет запрашивать конкретные условия отбора. Чтобы определить параметр, введите в строку Условие отбора вместо конкретного значения имя поля или фразу, заключённую в квадратные скобки, например: [Фамилия:] или [Введите фамилию покупателя:].

Построение запросов в конструкторе - student2.ru

То, что заключено внутри квадратных скобок, Microsoft Access рассматривает как имя параметра, оно выводится в диалоговом окне при выполнении запроса, поэтому в качестве имени параметра лучше использовать содержательную фразу, отражающую смысл выполняемого запроса, например:[Введите фамилию покупателя].

Построение запросов в конструкторе - student2.ru

В запросе можно задать несколько параметров, при этом имя каждого из них должно быть уникальным. При выполнении запроса Microsoft Access попросит вас ввести поочерёдно значения для каждого из параметров с помощью диалогового окна.

Наши рекомендации