Правила формирования условий для сложных запросов
MS Query-2
Создание сложных запросов
В Microsoft Query можно создать более сложные виды запросов. Для этого необходимо отказаться от услуг мастера запросов. Объем получаемых в результате запроса данных может быть уменьшен путем использования выражений и сложных условий. В состав выражений могут входить операторы, функции, имена полей и константы.
С помощью одного запроса с параметрами можно извлекать данные, которые отвечают нескольким различным условиям. Так, для получения всех сведений о продажах одного изделия в качестве условия может быть указано наименование этого изделия. Запросы с параметрами также удобны при извлечении части большой базы данных, если нехватка системных ресурсов не позволяет получить все содержащиеся в ней данные сразу.
Запрос с параметрами при запуске позволяет ввести дополнительные условия выборки данных. Создать запрос с параметрами можно только в Microsoft Query без использования мастера запросов.
Для создания сложного запроса необходимо в окне по выбору источника данных убрать галочку в строке «Использовать мастер запросов». В результате на экране появится рабочее окно для выбора таблиц, а затем окно для создания запроса, напоминающее аналогичное окно в Microsoft Access. Первым шагом к формированию запроса является выбор таблиц, из которых будут извлекаться данные. В рассматриваемом примере БД Борей имеет не слишком сложную структуру и рекомендуется добавить в рабочую область сразу все таблицы, расположив их таким образом, чтобы были видны все связи.
В нижней части окна отведено место для создания запроса и для отображения его результатов. Создание запроса состоит в «перетаскивании» мышкой имен полей в пустую ячейку в нижней части окна. Вот как выглядит результат запроса после «перетаскивания» полей «Страна» из таблицы «Поставщики», «Категория» из таблицы «Типы» и «Название» из таблицы «Доставка».
Для задания условия отбора записей необходимо в меню «Вид» установить галочку в строке «Условия». В результате в рабочем окне формирования запроса появится среднее поле, в котором можно формировать условия отбора. Имя поля, на которое накладываются условия, также перетаскивается в верхнюю строку этого поля. Вот как выглядит результат запроса при ограничении поставщиков только Российскими поставщиками.
Поле, на которое накладывается условие, не обязательно должно входить в результат выполнения запроса. Например, после добавления условия на количество заказанного товара результат запроса будет выглядеть так.
Правила формирования условий для сложных запросов
При формировании условий можно использовать следующие операторы сравнения.
Оператор сравнения | Значение | Пример | Выберите из списка условия | Введите в поле значения |
= (знак равенства) | Равно | Поиск записей о покупателях из Германии | Страна | =Германия |
<> (знак не равно) | Не равно | Поиск записей о поставщиках, живущих не в России | Страна | <>Россия |
> (знак больше) | Больше | Поиск записей о заказах, размещенных после указанной даты | Дата_заказа | >6/30/2000 |
< (знак меньше) | Меньше | Поиск записей о заказах, размещенных до указанной даты | Дата_заказа | <6/30/2000 |
>= (знак больше или равно) | Больше или равно | Поиск записей о заказах, размещенных не раньше указанной даты | Дата_заказа | >=6/30/2000 |
<= (знак меньше или равно) | Меньше или равно | Поиск записей о заказах, размещенных не позже указанной даты | Дата_заказа | <=6/30/2000 |
Для создания сложных условий можно использовать следующие логические операторы.
Логический оператор | Значение | Пример | Выберите в поле условия | Введите в поле значения |
И | Оба значения в одном поле должны быть истинными в таблице результатов. | Поиск записей о заказах, размещенных в определенный промежуток времени | Дата_заказа | >05.06.2000 И <23.06.2000 |
ИЛИ | Оба условия должны быть истинными для записей в таблице результатов. | Поиск записей о поставщиках, живущих в одном из двух мест. | Страна | Россия ИЛИ Бразилия |
НЕ | Это условие не должно быть истинным в таблице результатов. | Поиск записей о поставщиках, не живущих в указанной стране | Страна | НЕ Канада |
С помощью логических операторов можно формировать условия, которые содержат несколько логических операторов. При этом необходимо правильно расставлять скобки, чтобы обеспечить необходимый порядок выполнения логических операторов. Например, если нам необходимо отобрать все записи о поставщиках, проживающих в России или Бразилии и не проживающих в Канаде, в поле условий «Страна» необходимо ввести следующее значение:
(Россия ИЛИ Бразилия) И (НЕ Канада).