Создание простого запроса на выборку
Если вам нужно выбрать определенные данные из одного или нескольких источников, можно воспользоваться запросом на выборку. Запрос на выборку позволяет получить только необходимые сведения, а также помогает объединять информацию из нескольких источников. В качестве источников данных для запросов на выборку можно использовать таблицы и другие такие же запросы. В этом разделе вкратце рассматриваются запросы на выборку и предлагаются пошаговые инструкции по их созданию с помощью Мастера запросов либо в Конструктор.
Если вы хотите узнать больше о принципах работы запросов на примере базы данных Northwind, ознакомьтесь со статьей Общие сведения о запросах.
В этой статье
- Общие сведения
- Создание запроса SELECT с помощью мастера запросов
- Создание запроса в режиме конструктора
Общие сведения
Когда возникает потребность в каких-то данных, редко бывает необходимо все содержимое одной таблицы. Например, если вам нужна информация из таблицы контактов, как правило, речь идет о конкретной записи или только о номере телефона. Иногда бывает необходимо объединить данные сразу из нескольких таблиц, например совместить информацию о клиентах со сведениями о заказчиках. Для выбора необходимых данных используются запросы на выборку.
Запрос на выборку — это объект базы данных, отображающий сведения в Режим таблицы. Запрос не хранит данные, он отображает данные, хранящиеся в таблицах. Запрос может отображать данные из одной или нескольких таблиц, из других запросов или из комбинации двух таблиц.
Преимущества запросов
Запрос позволяет выполнять перечисленные ниже задачи.
-
Просматривать значения только из полей, которые вас интересуют. При открытии таблицы отображаются все поля. Вы можете сохранить запрос, который выдает лишь некоторые из них.
Примечание: Запрос только возвращает данные, но не сохраняет их. При сохранении запроса вы не сохраняете копию соответствующих данных.
Основные этапы создания запроса на выборку
Вы можете создать запрос на выборку с помощью мастера или конструктора запросов. Некоторые элементы недоступны в мастере, однако их можно добавить позже из конструктора. Хотя это разные способы, основные этапы аналогичны.
- Выберите таблицы или запросы, которые хотите использовать в качестве источников данных.
- Укажите поля из источников данных, которые хотите включить в результаты.
- Также можно задать условия, которые ограничивают набор возвращаемых запросов записей.
Создав запрос на выборку, запустите его, чтобы посмотреть результаты. Чтобы выполнить запрос на выборку, откройте его в режиме таблицы. Сохранив запрос, вы сможете использовать его позже (например, в качестве источника данных для формы, отчета или другого запроса).
Создание запроса на выборку с помощью мастера запросов
Мастер позволяет автоматически создать запрос на выборку. При использовании мастера вы не полностью контролируете все детали процесса, однако таким способом запрос обычно создается быстрее. Кроме того, мастер иногда обнаруживает в запросе простые ошибки и предлагает выбрать другое действие.
Подготовка
Если вы используете поля из источников данных, которые не связаны между собой, мастер запросов предлагает создать между ними отношения. Он откроет окно отношений, однако если вы внесете какие-то изменения, то вам потребуется перезапустить мастер. Таким образом, перед запуском мастера имеет смысл сразу создать все отношения, которые потребуются вашему запросу.
Дополнительную информацию о создании отношений между таблицами можно найти в статье Руководство по связям между таблицами.
Использование мастера запросов
- На вкладке Создание в группе Запросы нажмите кнопку Мастер запросов.

- В диалоговом окне Новый запрос выберите пункт Простой запрос и нажмите кнопку ОК.
- Теперь добавьте поля. Вы можете добавить до 255 полей из 32 таблиц или запросов. Для каждого поля выполните два указанных ниже действия.
- В разделе Таблицы и запросы щелкните таблицу или запрос, содержащие поле.
- В разделе Доступные поля дважды щелкните поле, чтобы добавить его в список Выбранные поля. Если вы хотите добавить в запрос все поля, нажмите кнопку с двумя стрелками вправо (>>).
- Добавив в запрос все необходимые поля, нажмите кнопку Далее.

- Если вы не добавили ни одного числового поля (поля, содержащего числовые данные), перейдите к действию 9. При добавлении числового поля вам потребуется выбрать, что именно вернет запрос: подробности или итоговые данные. Выполните одно из указанных ниже действий.
- Если вы хотите просмотреть отдельные записи, выберите пункт подробный и нажмите кнопку Далее. Перейдите к действию 9.
- Если вам нужны итоговые числовые данные, например средние значения, выберите пункт итоговый и нажмите кнопку Итоги.

- В диалоговом окне Итоги укажите необходимые поля и типы итоговых данных. В списке будут доступны только числовые поля. Для каждого числового поля выберите одну из перечисленных ниже функций.
- Sum — запрос вернет сумму всех значений, указанных в поле.
- Avg — запрос вернет среднее значение поля.
- Min — запрос вернет минимальное значение, указанное в поле.
- Max — запрос вернет максимальное значение, указанное в поле.

- Если вы хотите, чтобы в результатах запроса отобразилось число записей в источнике данных, установите соответствующий флажок Подсчет числа записей в (название источника данных).
- Нажмите ОК, чтобы закрыть диалоговое окно Итоги.
- Если вы не добавили в запрос ни одного поля даты и времени, перейдите к действию 9. Если вы добавили в запрос поля даты и времени, мастер запросов предложит вам выбрать способ группировки значений даты. Предположим, вы добавили в запрос числовое поле («Цена») и поле даты и времени («Время_транзакции»), а затем в диалоговом окне Итоги указали, что хотите отобразить среднее значение по числовому полю «Цена». Поскольку вы добавили поле даты и времени, вы можете подсчитать итоговые величины для каждого уникального значения даты и времени, например для каждого месяца, квартала или года.
Выберите период, который хотите использовать для группировки значений даты и времени, а затем нажмите кнопку Далее.
Примечание: В режиме конструктора для группировки значений по периодам можно использовать выражения, однако в мастере доступны только указанные здесь варианты.
Создание запроса в режиме конструктора
В режиме конструктора можно вручную создать запрос на выборку. В этом режиме вы полнее контролируете процесс создания запроса, однако здесь легче допустить ошибку и необходимо больше времени, чем в мастере.
Создание запроса
- Действие 1. Добавьте источники данных
- Действие 2. Соедините связанные источники данных
- Действие 3. Добавьте выводимые поля
- Действие 4. Укажите условия
- Действие 5. Рассчитайте итоговые значения
- Действие 6. Просмотрите результаты
Действие 1. Добавьте источники данных
При использовании конструктора для добавления источников данных источники данных и поля добавляются отдельными шагами. Однако вы всегда можете добавить дополнительные источники позже.
- На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

- Дважды щелкните каждый источник данных, который вы хотите использовать, или выберите каждый источник данных, а затем нажмите кнопку Добавить.

Автоматическое соединение
Если между добавляемыми источниками данных уже заданы отношения, они автоматически добавляются в запрос в качестве соединений. Соединения определяют, как именно следует объединять данные из связанных источников. Access также автоматически создает соединение между двумя таблицами, если они содержат поля с совместимыми типами данных и одно из них — первичный ключ.
Вы можете настроить соединения, добавленные приложением Access. Access выбирает тип создаваемого соединения на основе отношения, которое ему соответствует. Если Access создает соединение, но для него не определено отношение, Access добавляет внутреннее соединение.
Если приложение Access при добавлении источников данных автоматически создало соединения правильных типов, вы можете перейти к действию 3 (добавление выводимых полей).
Повторное использование одного источника данных
В некоторых случаях требуется объединить две копии одной и той же таблицы или запроса, называемые самосоединение, который объединяет записи из одной таблицы при наличии совпадающих значений в объединенных полях. Например, предположим, что у вас есть таблица «Сотрудники», в которой в поле ReportsTo для записи каждого сотрудника вместо имени отображается идентификатор руководителя. Вместо этого можно использовать самостоятельное присоединение, чтобы отобразить имя руководителя в записи каждого сотрудника.
При добавлении источника данных во второй раз Access присвоит имени второго экземпляра окончание «_1». Например, при повторном добавлении таблицы «Сотрудники» ее второй экземпляр будет называться «Сотрудники_1».
Действие 2. Соедините связанные источники данных
Если источники данных, добавляемые в запрос, уже имеют связи, Access автоматически создает внутреннее соединение для каждой связи. Если применяется целостность данных, Access также отображает «1» над строкой соединения, чтобы показать, какая таблица находится на одной стороне отношение «один-ко-многим» и символ бесконечности (∞), чтобы показать, какая таблица находится на стороне «многие».
Если вы добавили в запрос другие запросы и не создали между ними отношения, Access не создает автоматических соединений ни между ними, ни между запросами и таблицами, которые не связаны между собой. Если Access не создает соединения при добавлении источников данных, как правило, их следует создать вручную. Источники данных, которые не соединены с другими источниками, могут привести к проблемам в результатах запроса.
Кроме того, можно сменить тип соединения с внутреннего на внешнее соединение, чтобы запрос включал больше записей.
Добавление соединения

- Чтобы создать соединение, перетащите поле из одного источника данных в соответствующее поле в другом источнике. Access добавит линию между двумя полями, чтобы показать, что они соединены.
Изменение соединения

- Дважды щелкните соединение, которое требуется изменить. Откроется диалоговое окно Параметры соединения.
- Ознакомьтесь с тремя вариантами в диалоговом окне Параметры соединения.
- Выберите нужный вариант и нажмите кнопку ОК.
После создания соединений можно добавить выводимые поля: они будут содержать данные, которые должны отображаться в результатах.
Действие 3. Добавьте выводимые поля
Вы можете легко добавить поле из любого источника данных, добавленного в действии 1.
-
Для этого перетащите поле из источника в верхней области окна конструктора запросов вниз в строку Поле бланка запроса (в нижней части окна конструктора). При добавлении поля таким образом Access автоматически заполняет строку Таблица в таблице конструктора в соответствии с источником данных поля.
Совет: Чтобы быстро добавить все поля в строку «Поле» бланка запроса, дважды щелкните имя таблицы или запроса в верхней области, чтобы выделить все поля в нем, а затем перетащите их все сразу вниз на бланк.
Использование выражения в качестве выводимого поля
Вы можете использовать выражение в качестве выводимого поля для вычислений или создания результатов запроса с помощью функции. В выражениях могут использоваться данные из любых источников запроса, а также функции, например Format или InStr, константы и арифметические операторы.
- В пустом столбце таблицы запроса щелкните строку Поле правой кнопкой мыши и выберите в контекстном меню пункт Масштаб.
- В поле Масштаб введите или вставьте необходимое выражение. Перед выражением введите имя, которое хотите использовать для результата выражения, а после него — двоеточие. Например, чтобы обозначить результат выражения как «Последнее обновление», введите перед ним фразу Последнее обновление:.
Примечание: С помощью выражений можно выполнять самые разные задачи. Их подробное рассмотрение выходит за рамки этой статьи. Дополнительные сведения о создании выражений см. в статье Создание выражений.
Действие 4. Укажите условия
Этот этап является необязательным.
С помощью условий можно ограничить количество записей, которые возвращает запрос, выбирая только те из них, значения полей в которых отвечают заданным критериям.
Определение условий для выводимого поля
- В таблице конструктора запросов в строке Условие отбора поля, значения в котором вы хотите отфильтровать, введите выражение, которому должны удовлетворять значения в поле для включения в результат. Например, чтобы включить в запрос только записи, в которых в поле «Город» указано «Рязань», введите Рязань в строке Условие отбора под этим полем. Различные примеры выражений условий для запросов можно найти в статье Примеры условий запроса.
- Укажите альтернативные условия в строке или под строкой Условие отбора. Когда указаны альтернативные условия, запись включается в результаты запроса, если значение соответствующего поля удовлетворяет любому из указанных условий.
Условия для нескольких полей
Условия можно задать для нескольких полей. В этом случае для включения записи в результаты должны выполняться все условия в соответствующей строке Условия отбора либо Или.
Настройка условий на основе поля, которое не включается в вывод
Вы можете добавить в запрос поле, но не включать его значения в выводимые результаты. Это позволяет использовать содержимое поля для ограничения результатов, но при этом не отображать его.
- Добавьте поле в таблицу запроса.
- Снимите для него флажок в строке Показывать.
- Задайте условия, как для выводимого поля.
Действие 5. Рассчитайте итоговые значения
Этот этап является необязательным.
Вы также можете вычислить итоговые значения для числовых данных. Например, может потребоваться просмотреть среднюю цену или общий объем продаж.
Для расчета итоговых значений в запросе используется строка Итого. По умолчанию строка Итого не отображается в режиме конструктора.
- Открыв запрос в режиме конструктора , на вкладке Конструктор запросов в группе Показать и скрыть щелкните Итоги. Access отобразит строку Итого на бланке запроса.
- Для каждого необходимого поля в строке Итого выберите нужную функцию. Набор доступных функций зависит от типа данных в поле. Дополнительные сведения о функциях строки итогов в запросах см. в статье Отображение итогов столбцов в таблице с помощью строки итогов.
Действие 6. Просмотрите результаты
Чтобы просмотреть результаты запроса, на вкладке Конструктор запросов нажмите кнопку Выполнить. Access отобразит результаты запроса в режиме таблицы.
Чтобы вернуться в режим конструктора и внести в запрос изменения, щелкните Главная > Вид > Конструктор.
Настраивайте поля, выражения или условия и повторно выполняйте запрос, пока он не будет возвращать нужные данные.
Разбор тестирования 1С:Профессионал и PMP
Конструктор запросов — это инструмент разработки, позволяющий выбирать определенные данные для их программной обработки, либо использования в отчетах, либо в ограничениях прав доступа. Конструктор запросов может быть вызван из контекстного меню в нужном месте модуля:
Также конструктор может работать и в режиме Предприятие, в виде обработки Консоль запросов.
Некоторые концептуальные вопросы о конструкторе разобраны тут: https://about1cerp.blogspot.ru/2018/01/blog-post_46.html.
Построение запроса начинается со спецификации источников данных; для этого предназначена закладка Поля. В качестве источников данных могут выступать:
- физические таблицы базы данных
- виртуальные таблицы базы данных
- вложенные запросы
- временные таблица
Вопрос 07.03 экзамена 1С:Профессионал по платформе. Каким из вышеперечисленных способов можно воспользоваться, чтобы в разделе «Поля» конструктора запросов появились код и наименование справочника?
- Сначала заполнить раздел «Таблицы», а потом, выбирая нужные объекты из этого раздела, перенести их в раздел «Поля», используя двойной клик левой клавиши мыши
- Не заполняя раздел «Таблицы», сразу выбирать нужные объекты из таблиц — источников данных раздела «База данных», перенося их в раздел «Поля», используя технологию Drag & Drop. Раздел «Таблицы» заполняется автоматически
- Сначала заполнить раздел «Таблицы», а потом, выбирая нужные объекты из этого раздела, перенести их в раздел «Поля», используя кнопки на форме «>», «>>»
- Верны ответы 1 и 3
- Верны ответы 1, 2 и 3
Правильный ответ пятый, все варианты тут доступны.
Вопрос 07.05 экзамена 1С:Профессионал по платформе. Можно ли при выборе таблицы-источника в раздел «Таблицы» конструктора запросов задавать для нее новое имя (псевдоним)?
- Да, можно
- Да, можно, но только если в качестве источника данных выступает вложенный запрос
- Да, можно, но только если в качестве источника данных выступает виртуальная таблица
- Верны ответы 1 и 2
- Верны ответы 1 и 3
Правильный ответ первый (рис.), причем тип таблицы-источника неважен.
Вопрос 07.06 экзамена 1С:Профессионал по платформе. Вложенный запрос может использоваться:- В качестве таблицы-источника данных
- В качестве операнда операций сравнения «В» или «НЕ В» при задании параметров виртуальной таблицы
- В качестве операнда операций сравнения «В» или «НЕ В» при задании конструкции языка запросов «ГДЕ»
- Верны ответы 1, 2 и 3
Правильный ответ четвертый. Источником данных запрос точно может быть; о групповых операторах вхождения разобрано в статье на ИТС. Выдержка:
Групповой оператор вхожденияОператор вхождения имеет вид:- списка выражений;
- параметра, значением которого является коллекция значений;
- вложенного запроса.
Вложенный запрос должен определять выборку из N колонок.
Групповой оператор вхождения принимает значение «Истина», если запись (, . ) совпадает с одной из записей выборки, определяемой вложенным запросом. Например, пусть левым операндом является список:(1, 2, 3)
Если результатом вложенного запроса является выборка2, 2, 3
то результатом группового оператора вхождения будет «Ложь», а если результатом вложенного запроса является выборка:2, 2, 3
то результатом группового оператора вхождения будет «Истина».
Наряду с оператором вхождения («В») в языке запросов предусмотрен оператор не вхождения («НЕ В»), результатом которого является отрицание оператора «В» с такими же операндами. Все, сказанное про особенности выполнения оператора «В», относится и к оператору «НЕ В».Добавление поля подстановки или поля списка значений в веб-приложении Access
Важно Службы Access 2010 и 2013 удаляются из следующего выпуска SharePoint. Рекомендуется не создавать новые веб-приложения, а перенести существующие приложения на другую платформу, например Microsoft Power Apps.
Вы можете поделиться данными Access с Dataverse, облачной базой данных, на основе которой можно создавать приложения Power Platform, автоматические рабочие процессы, виртуальные агенты и т. д. для Интернета, телефона или планшета. Дополнительные сведения см. в разделе Начало работы: перенос данных Access в Dataverse.
Поле подстановки используется для поиска в одной таблице значений, которые можно использовать в другой таблице. Поле подстановки может служить источником значений для раскрывающегося списка и использоваться для упрощения ввода данных в поле. Пусть, например, вы хотите создать список 50 штатов США, чтобы пользователи могли выбирать штат в списке, а не вводить его название. С помощью мастера подстановок в Access можно создать поле подстановки для названия штата.
В этой статье
- Создание поля подстановки
- Создание поля списка значений
- Сравнение поля со списком и элемента управления с автозаполнением
Создание поля подстановки
Если ранее вы использовали шаблон для создания приложения или добавления таблицы, возможно, в Access уже созданы отношения подстановки между таблицами. Чтобы проверить наличие полей подстановки, откройте таблицу в режиме конструктора в Access и найдите в столбце Тип данных тип данных Подстановка.
Использование мастера подстановок в веб-приложении Access:
- В классическом приложении Access откройте таблицу в режиме конструктора.
- В первой пустой строке списка полей введите название нового поля подстановки и щелкните Подстановка в столбце Тип данных. Будет запущен мастер подстановок.
Важно: В веб-приложении Access следует сразу же после добавления поля настроить для него тип данных «Подстановка». Если вы измените тип данных поля на тип «Подстановка», вам не удастся сохранить изменения структуры таблицы, даже если в поле не было значений. Это ограничение распространяется только на веб-приложение.
Примечание: Лучше всего установить флажок Запретить удаление, если существуют соответствующие записи…, поскольку при этом сохранится целостность данных. Применять другие параметры следует с осторожностью.
Создание поля списка значений
Вы можете создать список значений вместо использования существующего поля или запроса в качестве источника.
-
В классическом приложении Access откройте таблицу в режиме конструктора.
Важно: В веб-приложении потребуется использовать новое поле. Если вы измените тип данных поля на тип «Подстановка», вам не удастся сохранить изменения структуры таблицы, даже если в поле не было значений.
Сравнение поля со списком и элемента управления с автозаполнением
В следующем представлении:

- Для поля Зона доставки используется элемент управления с автозаполнением. Как только пользователь введет первую или несколько первых букв зоны, будет отображено первое соответствие в списке. Элемент управления с автозаполнением следует применять, если пользователи уже знают, что они ищут, и не хотят полностью просматривать длинный список. Дополнительные сведения см. в статье Добавление элемента управления автозаполнением в представление.
- Для поля Штат используется элемент управления «поле со списком». Нажмите кнопку со стрелкой вниз, чтобы увидеть весь список значений. Поле со списком следует применять, когда пользователи сразу должны видеть все варианты выбора. Дополнительные сведения см. в статье Добавление поля со списком в представление.
Вложенные запросы
Вложенным называется запрос, который является источником выборки основного запроса. Допускается произвольная вложенность таких запросов.
- Предназначен для предварительной обработке данных, либо для более удобного восприятия.
- Может использоваться в качестве параметра условия В()
- Синтаксис вложенного запроса:
- Прочие сведения о вложенных запросах
- Зачем может потребоваться вложенный запрос в приоритетном порядке:
Синтаксис вложенного запроса:
ВЫБРАТЬ * из (ВЫБРАТЬ 1) КАК ВложенныйЗапрос
ВЫБРАТЬ * ИЗ Справочник.Контрагенты ГДЕ Ссылка В (ВЫБРАТЬсколько с Ссылка ИЗ Справочник.Контрагенты)
ВЫБРАТЬ * ИЗ Справочник.Контрагенты ГДЕ (Ссылка,Наименование) В (ВЫБРАТЬ Ссылка,Наименование ИЗ Справочник.Контрагенты)
- Общее правило — расположение в скобках.
- В качестве источника должен обязательно иметь псевдоним запроса.
- В качестве условия вхождения он должен иметь столько полей сколько значений проверяется (либо будет ошибка «В запросах операции «В» должно выбираться столько полей, сколько операндов имеет левая часть операции»).

В конструкторе вложенный запрос создается на основной вкладке по специальной кнопке:

Иконка у таблицы вложенного запроса отличается от других таблиц:
Прочие сведения о вложенных запросах
Считается, что вложенные запросы менее оптимизированы на скорость, но с появлением платформы 8.3 данный фактор справедлив только для Postgres SQL (возможно особенность конкретной сборки).
В целом, в большинстве случаев, запросы можно переписать на использование временных таблиц, но не для запроса динамического списка управляемого интерфейса (там это запрещено на уровне платформы). Вложенный запрос же использовать в нем допустимо, если он не вызывает дублей ключевых полей (Ссылка).
Если вложенный запрос основной, то основная таблица динамического списка будет пустой, что отключит событийные команды такого списка.
(для примера выше, нельзя будет добавить новый элемент или группу).Допускается вложенный запрос и при соединениях таблиц.
Например:
ВЫБРАТЬ * ИЗ Справочник.Контрагенты КАК Основная ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ * ИЗ Справочник.Контрагенты ) КАК Вложенный ПО Основная.Ссылка = Вложенный.Ссылка
Примеры выше подобраны в учебных целях: максимально простого синтаксиса, а не для решения какой-либо задачи.
Зачем может потребоваться вложенный запрос в приоритетном порядке:
В случае использования результата агрегатной функции в качестве условия соединения таблиц:
- Для простого отбора можно воспользоваться конструкцией ИМЕЮЩИЕ.
Если же нам необходимо посчитать остаток в рознице + в опте (в торговле) и вывести только, те у которых общий остаток меньше 10, без вложенного запроса невозможно будет обойтись. - Условия в запросах виртуальных таблиц работают лучше и быстрее, если используется В(), вместо обращения через точку:
ВЫБРАТЬ * ИЗ РегистрСведений.КурсыВалют.СрезПоследних(, Валюта В(ВЫБРАТЬ ссылка из Справочник.Валюты. ГДЕ Наименование = «Рубль»))
ВЫБРАТЬ * ИЗ РегистрСведений.КурсыВалют.СрезПоследних(, Валюта.Наименование = «Рубль»)
Как описываются машины в рекламных проспектах? Волнующие, эффектные, изящные, грациозные, обтекаемой формы. Прямо не знаешь, куда их вести — в гараж или в номер мотеля.
— Роберт Орбен