Запрос, основанный на одной таблице и использующий простое условие
Допустим, нужно выбрать из таблицы Заказы названия всех клиентов, заказы у которых были размещены в 1998 году и расположить их в алфавитном порядке. Для этого сначала создайте новый запрос, нажав кнопку Создать и выбрав в диалоговом окне Новый запрос пункт Конструктор. Затем нужно добавить к запросу таблицу Заказы и перетащить из нее в бланк запроса поля Название Получателя и Дата Размещения. В строке Условие отбора для поля Дата Размещения введите условие: Between #01.0l.98# And #31.12.98# и снимите флажок Вывод на экран. Для поля Название Получателя установите порядок сортировки по возрастанию. Если перейти в режим просмотра, то будет видно, что наименования некоторых клиентов выводятся много раз (ровно столько, сколько раз ссылка на клиента попадается в исходной таблице Заказы. Чтобы избежать этого, нужно открыть окно Свойства запроса, щелкнув на соответствующей кнопке панели инструментов (или выбрав одноименный пункт контекстного меню и установить свойство Уникальные значения в значение Да. На рис.2.1. изображен получившийся запрос в режиме конструктора, в режиме таблицы и соответствующая строка оператора SQL.
Рис. 2.1. Запрос, основанный на одной таблице и использующий простое условие
Пояснения
а). Функция Between ... And определяет принадлежность значения выражения указанному диапазону. Полный синтаксис:
выражение [Not] Between значение_ 1 And значение 2, где:
б) Конструкции SQL.
SELECT — задает требование к Microsoft Jet (ядро базы данных, которое обслуживает запросы) на выборку данных, тем самым определяя тип запроса. В предложении SELECТ перечисляются все поля, которые должны войти в результирующий набор данных, в том числе вычисляемые.
DISTINCT — необязательный предикат, использующийся совместно с предложением SELECT. Задает выборку только уникальных результирующих записей. Указывается после ключевого слова SELECT перед списком выбираемых полей. Предикат DISTINCT появился в операторе автоматически после того, как для свойства запроса уникальные значения было задано значение Да.
FROM. В этом предложении задаются имена одной или нескольких исходных таблиц (запросов). Здесь же указываются связи между таблицами, если они есть.
WHERE. В этом предложении задаются условия, согласно которым отбираются записи из исходных таблиц (запросов).
ORDER BY. Здесь можно задать порядок сортировки для каждого из полей, входящих в это предложение. Порядок сортировки указывается после каждого наименования поля в предложении ORDER BY и может принимать значения ASC (по возрастанию) или DESC (по убыванию). Если порядок сортировки не указан, то подразумевается — по возрастанию (ASС).
Точка с запятой (;) — обязательно указывается в конце оператора SQL.