Какой в конструкторе существует запрос

Обновлено: 28.04.2024

Создать запрос на выборку можно выполнить двумя путями:

– с помощью мастера запросов,

– с помощью конструктора.

Для создания запроса с помощью мастера необходимо выполнить следующую последовательность действий:

– щелкнуть в окне База данных по объекту Запросы,

щелкнуть по кнопке Создать инструментальной панели окна База данных,

– в окне Новые запросы выбрать строку Простой запрос.

Эти действия приводят к первому шагу мастера.

В раскрывшемся окне первого шага с помощью списков Таблицы и запросы и Доступные поля, а также кнопок >, >>,

щелкнуть по кнопке Далее окна Таблицы и запросы.

На этом завершается первый шаг мастера и происходит переход ко второму его шагу.

Второй шаг мастера запросов.

– из раскрывшегося окна второго шага выбрать один из вариантов запроса:

Выбор варианта Подробный приводит к включению всех отобранных полей всех записей. Он устанавливается по умолчанию.

Выбор варианта Итоговыйприводит к разблокированию (отображение контрастным шрифтом) кнопки Итоги.Щелчок по этой кнопке вызывает открытие окна, содержащего флажки Sum(суммирование), Avg (среднее), Min(наименьшее), Max (наибольшее) для каждого числового поля запроса и общий флажок Подсчет числа записей. С помощью указанных флажков можно включить режим группировки по строкам таблицы с созданием в запросе дополнительных столбцов, соответствующих включенным флажкам. После установки необходимых флажков следует:

– щелкнуть по кнопке ОК, что приведет к переходу к предыдущему окну,

– щелкнуть по кнопке Далее, что приведет к переходу в окно третьего шага мастера.

В последнем окне (третьего шага) предлагается ввести название созданного запроса и открыть его для просмотра или модификации.

Чтобы завершить работу с мастером, необходимо

– щелкнуть по кнопке Готово последнего окна мастера запросов.

Этой последней операцией завершается работа мастера. При этом программа MS Access автоматически сохраняет и выполняет созданный запрос, а также отображает результат запроса в отдельном окне.

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

База данных – Запросы – Создать – Конструктор

или же вместо двух последних операций дважды щелкнуть по строке Создание запроса в режиме конструктора.

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

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

После этого появляется окно бланка запроса (рис.24.2).

Запрос1: запрос на выборку
Преподават. Предметы
Код препод.
Код препод.
Поле: Имя таблицы Сортировка Вывод на экран Условие отбора Или: Фамилия Должность Предметы Семестр
Преподават. Преподават. Предметы Предметы
По возрастанию По убыванию
< 6

Рис. 23.2. Общий вид окна бланка запроса

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

Таким образом были перемещены с таблицы Преподаватели названия Преподаватели, Должность, а с таблицы Предметы – названия Предметы, Семестр.

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

Если в запросе необходимо выполнить групповые операции (сумма, среднее, минимальное, максимальное и др.), то необходимо:

вызвать контекстное меню щелчком правой клавиши мыши по любой ячейке бланка,

выбрать команду Групповые операции. Вследствие этого, в бланке запроса, выше строки Сортировка, появится строка Групповая операция,

щелкнуть по ячейке, которая должна участвовать в групповой операции,

щелкнуть по появившейся в ячейке кнопке раскрытия списка и выбрать из списка необходимую операцию,

ответить на поля Вывод на экран, Условия отбора,

сохранить созданный запрос в файле базы данных с помощью известной процедуры:

Файл – Сохранить – указать имя – ОК.

Если вам нужно выбрать определенные данные из одного или нескольких источников, можно воспользоваться запросом на выборку. Запрос на выборку позволяет получить только необходимые сведения, а также помогает объединять информацию из нескольких источников. В качестве источников данных для запросов на выборку можно использовать таблицы и другие такие же запросы. В этом разделе вкратце рассматриваются запросы на выборку и предлагаются пошаговые инструкции по их созданию с помощью Мастера запросов либо в Конструктор.

Если вы хотите узнать больше о принципах работы запросов на примере базы данных Northwind, ознакомьтесь со статьей Общие сведения о запросах.

В этой статье

Общие сведения

Когда возникает потребность в каких-то данных, редко бывает необходимо все содержимое одной таблицы. Например, если вам нужна информация из таблицы контактов, как правило, речь идет о конкретной записи или только о номере телефона. Иногда бывает необходимо объединить данные сразу из нескольких таблиц, например совместить информацию о клиентах со сведениями о заказчиках. Для выбора необходимых данных используются запросы на выборку.

Запрос на выборки — это объект базы данных, в который в Режим таблицы. Запрос не хранит данные, а отображает данные, хранимые в таблицах. Запрос может показывать данные из одной или нескольких таблиц, из других запросов или из их сочетания.

Преимущества запросов

Запрос позволяет выполнять перечисленные ниже задачи.

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

Примечание: Запрос только возвращает данные, но не сохраняет их. При сохранении запроса вы не сохраняете копию соответствующих данных.

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

Использовать выражения в качестве полей. Например, в роли поля может выступить функция, возвращающая дату, а с помощью функции форматирования можно управлять форматом значений из полей в результатах запроса.

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

Основные этапы создания запроса на выборку

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

Выберите таблицы или запросы, которые хотите использовать в качестве источников данных.

Укажите поля из источников данных, которые хотите включить в результаты.

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

Создав запрос на выборку, запустите его, чтобы посмотреть результаты. Чтобы выполнить запрос на выборку, откройте его в режиме таблицы. Сохранив запрос, вы сможете использовать его позже (например, в качестве источника данных для формы, отчета или другого запроса).

Создание запроса на выборку с помощью мастера запросов

Мастер позволяет автоматически создать запрос на выборку. При использовании мастера вы не полностью контролируете все детали процесса, однако таким способом запрос обычно создается быстрее. Кроме того, мастер иногда обнаруживает в запросе простые ошибки и предлагает выбрать другое действие.

Подготовка

Если вы используете поля из источников данных, которые не связаны между собой, мастер запросов предлагает создать между ними отношения. Он откроет окно отношений, однако если вы внесете какие-то изменения, то вам потребуется перезапустить мастер. Таким образом, перед запуском мастера имеет смысл сразу создать все отношения, которые потребуются вашему запросу.

Дополнительную информацию о создании отношений между таблицами можно найти в статье Руководство по связям между таблицами.

Использование мастера запросов

На вкладке Создание в группе Запросы нажмите кнопку Мастер запросов.

В диалоговом окне Новый запрос выберите пункт Простой запрос и нажмите кнопку ОК.

Теперь добавьте поля. Вы можете добавить до 255 полей из 32 таблиц или запросов.

Для каждого поля выполните два указанных ниже действия.

В разделе Таблицы и запросы щелкните таблицу или запрос, содержащие поле.

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

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

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

Выполните одно из указанных ниже действий.

Если вы хотите просмотреть отдельные записи, выберите пункт подробный и нажмите кнопку Далее. Перейдите к действию 9.

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

В диалоговом окне Итоги укажите необходимые поля и типы итоговых данных. В списке будут доступны только числовые поля.

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

Sum — запрос вернет сумму всех значений, указанных в поле.

Avg — запрос вернет среднее значение поля.

Min — запрос вернет минимальное значение, указанное в поле.

Max — запрос вернет максимальное значение, указанное в поле.

Если вы хотите, чтобы в результатах запроса отобразилось число записей в источнике данных, установите соответствующий флажок Подсчет числа записей в (название источника данных).

Нажмите ОК, чтобы закрыть диалоговое окно Итоги.

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

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

Примечание: В режиме конструктора для группировки значений по периодам можно использовать выражения, однако в мастере доступны только указанные здесь варианты.

На последней странице мастера задайте название запроса, укажите, хотите ли вы открыть или изменить его, и нажмите кнопку Готово.

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

Создание запроса в режиме конструктора

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

Создание запроса

Действие 1. Добавьте источники данных

При использовании конструктора для добавления источников данных их источники и поля добавляются в отдельных шагах. Однако вы всегда можете добавить дополнительные источники позже.

На вкладке Создание в группе Другое нажмите кнопку Конструктор запросов.

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

Автоматическое соединение

Если между добавляемыми источниками данных уже заданы отношения, они автоматически добавляются в запрос в качестве соединений. Соединения определяют, как именно следует объединять данные из связанных источников. Access также автоматически создает соединение между двумя таблицами, если они содержат поля с совместимыми типами данных и одно из них — первичный ключ.

Вы можете настроить соединения, добавленные приложением Access. Access выбирает тип создаваемого соединения на основе отношения, которое ему соответствует. Если Access создает соединение, но для него не определено отношение, Access добавляет внутреннее соединение.

Если приложение Access при добавлении источников данных автоматически создало соединения правильных типов, вы можете перейти к действию 3 (добавление выводимых полей).

Повторное использование одного источника данных

В некоторых случаях необходимо соединить две копии одной и той же таблицы или запроса, называемые запросом самосоединение, которые объединяют записи из одной таблицы при совпадении значений в соединитьые поля. Например, допустим, что у вас есть таблица "Сотрудники", в которой в поле "ОтчетЫВ" для записи каждого сотрудника вместо имени отображается его имя руководителя. Вместо этого вы можете самостоятельно отобразить имя руководителя в записях каждого сотрудника.

При добавлении источника данных во второй раз Access присвоит имени второго экземпляра окончание "_1". Например, при повторном добавлении таблицы "Сотрудники" ее второй экземпляр будет называться "Сотрудники_1".

Действие 2. Соедините связанные источники данных

Если у источников данных, которые вы добавляете в запрос, уже есть связи, Access автоматически создает внутреннее присоединение для каждой связи. Если целостность данных, access также отображает "1" над линией связи, чтобы показать, какая таблица находится на стороне "один" отношение "один-ко-многим", и символ бесконечности(∞),чтобы показать, какая таблица находится на стороне "многие".

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

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

Добавление соединения

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

Access добавит линию между двумя полями, чтобы показать, что они соединены.

Изменение соединения

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

Откроется диалоговое окно Параметры соединения.

Ознакомьтесь с тремя вариантами в диалоговом окне Параметры соединения.

Выберите нужный вариант и нажмите кнопку ОК.

После создания соединений можно добавить выводимые поля: они будут содержать данные, которые должны отображаться в результатах.

Действие 3. Добавьте выводимые поля

Вы можете легко добавить поле из любого источника данных, добавленного в действии 1.

Для этого перетащите поле из источника в верхней области окна конструктора запросов вниз в строку Поле бланка запроса (в нижней части окна конструктора).

При добавлении поля таким образом Access автоматически заполняет строку Таблица в таблице конструктора в соответствии с источником данных поля.

Совет: Чтобы быстро добавить все поля в строку "Поле" бланка запроса, дважды щелкните имя таблицы или запроса в верхней области, чтобы выделить все поля в нем, а затем перетащите их все сразу вниз на бланк.

Использование выражения в качестве выводимого поля

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

В пустом столбце таблицы запроса щелкните строку Поле правой кнопкой мыши и выберите в контекстном меню пункт Масштаб.

В поле Масштаб введите или вставьте необходимое выражение. Перед выражением введите имя, которое хотите использовать для результата выражения, а после него — двоеточие. Например, чтобы обозначить результат выражения как "Последнее обновление", введите перед ним фразу Последнее обновление:.

Примечание: С помощью выражений можно выполнять самые разные задачи. Их подробное рассмотрение выходит за рамки этой статьи. Дополнительные сведения о создании выражений см. в статье Создание выражений.

Действие 4. Укажите условия

Этот этап является необязательным.

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

Определение условий для выводимого поля

В таблице конструктора запросов в строке Условие отбора поля, значения в котором вы хотите отфильтровать, введите выражение, которому должны удовлетворять значения в поле для включения в результат. Например, чтобы включить в запрос только записи, в которых в поле "Город" указано "Рязань", введите Рязань в строке Условие отбора под этим полем.

Различные примеры выражений условий для запросов можно найти в статье Примеры условий запроса.

Укажите альтернативные условия в строке или под строкой Условие отбора.

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

Условия для нескольких полей

Условия можно задать для нескольких полей. В этом случае для включения записи в результаты должны выполняться все условия в соответствующей строке Условия отбора либо Или.

Настройка условий на основе поля, которое не включается в вывод

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

Добавьте поле в таблицу запроса.

Снимите для него флажок в строке Показывать.

Задайте условия, как для выводимого поля.

Действие 5. Рассчитайте итоговые значения

Этот этап является необязательным.

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

Для расчета итоговых значений в запросе используется строка Итого. По умолчанию строка Итого не отображается в режиме конструктора.

Когда запрос открыт в конструкторе, на вкладке "Конструктор" в группе "Показать или скрыть" нажмите кнопку Итоги.

Access отобразит строку Итого на бланке запроса.

Для каждого необходимого поля в строке Итого выберите нужную функцию. Набор доступных функций зависит от типа данных в поле.

Дополнительные сведения о функциях строки "Итого" в запросах см. в статье Суммирование или подсчет значений в таблице с помощью строки "Итого".

Действие 6. Просмотрите результаты

Чтобы увидеть результаты запроса, на вкладке "Конструктор" нажмите кнопку Выполнить. Access отобразит результаты запроса в режиме таблицы.

Чтобы вернуться в режим конструктора и внести в запрос изменения, щелкните Главная > Вид > Конструктор.

Настраивайте поля, выражения или условия и повторно выполняйте запрос, пока он не будет возвращать нужные данные.

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Примечание: Этот раздел относится только в проектам Microsoft Access (AFP-файлам).

Конструктор запросов состоит из трех областей: область схемы, область сетки и область SQL.

Три области конструктора запросов

В области схемы отображаются таблиц, представлений и функций в строке, которые запрашиваются данные. Каждый прямоугольник представляет таблицу, представление или функцию в строку и отображаются доступные столбцы данных, а также значки показывающие, как использовать каждого столбца в запросе. Соединения обозначены линии между прямоугольники.

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

В области SQL отображаются инструкции SQL для запроса. Можно редактировать инструкции SQL, созданные с помощью конструктора запросов или вы можете ввести инструкцию SQL. Особенно полезна для ввода инструкции SQL, которые не может быть создан с использованием области схемы и сетки, например запросы на объединение.

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

Область схемы

Общие сведения об области схемы

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

В области диаграммы вы можете:

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

Укажите столбцы для сортировки в запросе.

Укажите, что вы хотите группировка строк в результирующем наборе.

Создание или изменение связей между таблицами, представления, пользовательские функции или подзапросов.

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

Область схемы значки, флажки и символы

Каждой таблицы, представления, пользовательские функции или подчиненного запроса в виде область схемы в отдельном окне. Значок в строке заголовка каждого прямоугольника указывает, какой тип объекта представляет прямоугольник, как показано в таблице ниже.

Тип объекта

Подчиненный запрос (в FROM предложение)

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

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

Флажок или символ

Указывает, отображается в результатах запроса (запрос на выборку) или используется в запрос на обновление, добавление, создание таблицы или добавление значений столбца данных. Выберите столбец, чтобы добавить его в результатах. Если установлен флажок (Все столбцы), все столбцы данных отображаются в результатах.

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

Указывает, что столбец данных используется для упорядочения результатов запроса (является частью предложение ORDER BY). Значок отображается как A Z Если порядок сортировки по возрастанию или я — А если сортировка по убыванию.

Указывает, что столбец данных используется для создания сгруппированного результирующего набора (является частью предложение GROUP BY) в итоговый запрос.

Указывает, что столбец данных включен в условие поиска для запроса (входит в предложение WHERE или предложение HAVING).

Указывает, что содержимое столбца данных суммируется для вывода (включается в функции SUM, AVG или другую статистическую функцию).

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

Объединенные таблицы в области схемы

Если запрос включает объединение, появится линия связи между столбцами данных для объединения. Если соединяемые столбцы данных не отображаются (для примере, таблицу, представление, определяемая пользователем функция или подзапроса окно свернуто или объединение включает выражение), конструктор запросов помещает линию объединения в строке заголовка прямоугольник, представляющий в таблице представление, определяемая пользователем функция или подчиненный запрос. Конструктор запросов отображает одну линию объединения для каждого условия соединения.

Форма значка в центре линии объединения показывает, как соединены таблиц или табличных объектов. Если в предложении объединения используется не знак равенства (=), оператор отображается на значке линии объединения. В следующей таблице перечислены значки, которые могут отображаться в строке соединения.

Значок строки соединения

Внутреннее соединение (созданное с помощью знак равенства).

Внутреннее соединение с учетом оператора «больше». (Оператор, отображаемый на значке линии объединения отражает оператор, используемый для объединения).

Внешнее соединение, в котором все строки из таблицы, представленные в левой части экрана, даже если они не имеют соответствий в связанной таблице.

Внешнее соединение, в котором все строки из таблицы на правой стороне, даже если они не имеют соответствий в связанной таблице.

Полное внешнее соединение, в какой все строки из обеих таблиц, даже если они не имеют соответствий в связанной таблице, представлении, определяемая пользователем функция или подзапроса.

Значки на концах линии соединения указывают тип соединения. В следующей таблице перечислены типы соединений и значки, которые могут отображаться на концах линии объединения.

Значок на концах линии объединения

Присоединиться к одному

Присоединение к один ко многим

Конструктор запросов не удается определить тип объединения.

Область сетки

Общие сведения об области сетки

Область сетки позволяет указать параметры запроса, например столбцы данных для отображения, как упорядочить результаты и выбираемых столбцов —, введя нужные значения в электронных сетку. В области сетки можно указать:

Отображаемые столбцы и псевдонимы имен столбцов.

Таблица, к которой принадлежит столбец.

Выражения для вычисляемых столбцов.

Порядок сортировки для запроса.

Критерии группирования, включая агрегатные функции для сводных отчетов.

Новые значения для запросов на обновление или добавление значений.

Имена столбцов в запросах на добавление.

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

О столбцах область сетки

В области сетки строк отобразить столбцы данных, используемые в запросе; столбцы в области сетки отображают параметры запроса.

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

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

Тип запроса

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

Выберите, добавление, обновление, создание таблицы

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

Выберите, добавление, обновление, создание таблицы

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

Выходные данные

Выберите, добавление, создание таблицы

Указывает, отображается ли столбец данных в результатах запроса.

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

Тип сортировки

Указывает, что соответствующий столбец данных используется для сортировки результатов запроса и ли сортировка по возрастанию или по убыванию.

Порядок сортировки

Определяет приоритет сортировки для столбцов данных, используемых для сортировки результатов. При изменении порядка сортировки для столбца данных порядок сортировки для всех столбцов обновляется соответствующим образом.

Группировать по

Выберите, добавление, создание таблицы

Указывает, что соответствующий столбец данных используется для создания статистического запроса. Этот столбец появляется только в том случае, если вы выбрали Group By из меню " Сервис " или добавили предложение GROUP BY в области SQL.

По умолчанию этот столбец имеет значение Group By и столбец станет частью предложение GROUP BY.

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

Определяет условия поиска (фильтр) для соответствующего столбца данных. Введите оператор (по умолчанию — «=») и введите значение для поиска. Текстовые значения следует заключайте в одиночные кавычки.

Если соответствующего столбца данных является частью предложение GROUP BY, введенное выражение используется для предложение HAVING.

При вводе значения для более одной ячейки в столбце сетки условий условия поиска автоматически связываются с логического оператора AND.

Указывает дополнительное условие поиска для столбца данных, связанные с предыдущими условиями логическое или. Вы можете добавить дополнительные столбцы сетки или. , нажатие клавиши TAB в крайний правый столбец или. .

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

Новое значение

Обновление, добавление значений

Задает значение, чтобы поместить в соответствующий столбец. Введите литерал или выражение.

В области SQL

Обзор области SQL

В области SQL отображает инструкцию SQL для текущего запроса. При создании запроса в области SQL автоматически обновляет и изменяет формат для удобства чтения.

В области SQL можно:

Создание новых запросов путем ввода инструкций SQL.

Измените инструкцию SQL, созданные с помощью конструктора запросов на основе параметров, внесенные в областях схемы и сетки.

Введите операторы, которые выполняются преимуществами определенных функций Microsoft SQL Server.

Инструкции в области SQL

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

Примечание: Можно ввести подсказки оптимизатора инструкции SQL, но конструктор запросов может их переформатировать.

Вернитесь в области SQL и изменение инструкции.

Чтобы отменить внесенные изменения и вернуться к последней версии инструкции SQL.

Если вернуться в области SQL и продолжить редактирование инструкцию, конструктор запросов затемнение областей, чтобы показать, что они больше не отражают содержимое области SQL.

В области SQL можно также использовать для ввода инструкции SQL, которые не могут быть представлены графически в конструктор запросов. В таких случаях в конструкторе запросов отображаются так же, как это происходит, когда обнаруживает ошибку — это затемнение областях схемы и сетки, чтобы указать, что они не представляют текущую инструкцию. Можно продолжить изменение инструкции и выполнить ее, как любую другую инструкцию SQL.

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

Конструктор запросов в 1С 8.3 и 8.2 — мощнейший инструмент разработки. Он позволяет составить текст запроса при помощи специальной визуальной среды. Таким образом, чтобы создать запрос 1с не обязательно знать встроенный язык запросов, достаточно ориентироваться в не сложном и интуитивно понятном интерфейсе конструктора.

Конструктор запросов представляет из себя набор вкладок, каждая из которых отвечает за свою часть запроса. Так заполняя вкладку Таблицы и поля мы выбираем таблицы из которых запрос 1с будет получать данные и поля этих таблиц необходимые для решения конкретной задачи. Заполняя в кладку Условия мы накладываем условия на выбранные таблицы, для того чтобы выбрать из них только нужные нам данные и так далее.

Для того чтобы вызвать конструктор запросов 1с 8 в программном коде необходимо:

  • Создать новый запрос
  • Задать пустую строку текста запроса
  • Поставить курсор мышки между кавычками, нажать правую кнопку мыши. В открывшемся контекстном меню выбрать пункт Конструктор запроса и ответить Да на вопрос о создании нового запроса. Если текст запроса уже записан, то необходимо щелкнуть на любом месте внутри него и вызвать конструктор;

Рассмотрим на небольших примерах с возрастающей сложностью все основные вкладки конструктора запросов. Такой подход позволит начинающему программисту 1с более эффективно изучить конструктор и все его возможности. Для примеров будем использовать конфигурацию Бухгалтерия 3.0.

Урок №1. Конструктор запросов — простейший пример использования.

Задача: написать запрос к справочнику номенклатура, выбрать всю номенклатуру справочника.

Новые вкладки: Таблицы и поля.

Новые механизмы: просмотр и редактирование текста запроса при помощи кнопки «Запрос».

Для начала создания запроса создадим новый запрос и вызовем конструктор (как это делается написано несколькими абзацами выше). После этого откроется окно конструктора на вкладке Таблицы и поля.

Теоретическая часть урока №1

Вкладка Таблицы и поля состоит из трех разделов:

База данных. В данном разделе представлены все таблицы базы данных, которые можно использовать для построения запроса;

Таблицы. В данный раздел выбираются таблицы необходимые для данного запроса. Для тогда чтобы переместить их из раздела база данных нужно:

  • Либо дважды щелкнуть по таблице;
  • Либо воспользоваться кнопками «>» или «>>».

Над разделом Таблицы присутствует ряд кнопок. Про большинство из них будет подробнее рассказано в следующих уроках. А пока дам только краткие пояснения.

  • Создать вложенный запрос (красная линия). Предназначена для создания нового вложенного запроса;
  • Создать описание временной таблицы (желтая линия). Позволяет задать имя временной таблицы, которая расположена вне данного запроса, также можно использовать для передачи в запрос таблицы значений;
  • Изменить текущий элемент (зеленая линия). Позволяет перейти в выделенный вложенный запрос, временную таблицу или описание временной таблицы;
  • Удалить текущий элемент (голубая линия). Удаляет выделенную таблицу из выбранных таблиц;
  • Заменить таблицу (синяя линия). Открывает диалог замены выделенной таблицы. Полезно, если вы неверно выбрали виртуальную таблицу регистра, так как происходит позиционирование на текущей выбранной таблице в списке.
  • Параметры виртуальной таблицы (фиолетовая линия). Открывает параметры виртуальной таблицы регистра.

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

  • Либо дважды щелкнуть по полю;
  • Либо воспользоваться кнопками «>» или «>>»;
  • Также можно добавить новое поле самостоятельно, используя произвольное выражение из полей выбранных таблиц и функций языка запросов.

Над разделом Поля присутствует ряд кнопок. Про создание полей при помощи произвольных выражений будет подробнее рассказано в следующих уроках. А пока дам только краткие пояснения.

  • Добавить (зеленая линия). Предназначена для добавления нового поля при помощи редактора произвольных выражений;
  • Изменить текущий элемент (красная линия). Позволяет изменить выделенное поле при помощи редактора;
  • Удалить текущий (синяя линия). Удаляет выделенное поле из списка.

Практическая часть урока №1

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

Приступим к созданию запроса по номенклатуре:

  • Создадим новый запрос и откроем конструктор методом указанным в начале урока;
  • В разделе База данных, откроем ветку Справочники и найдем там справочник Номенклатура;
  • Выделим его и при помощи кнопки «>» перенесем в раздел Таблицы;
  • В разделе Таблицы раскроем справочник номенклатура при помощи значка «+»;
  • В раскрывшемся списке полей найдем поле Ссылка и перенесем его в раздел Поля при помощи кнопки «>»
  • Запрос по номенклатуре готов, нажимаем кнопку «ОК» в нижней части окна конструктора.

В итоге у нас получится запрос со следующим текстом:

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

Конструктор запроса 1С - это один из инструментов разработки, который позволяет:

  1. составить текст запроса на языке запросов исключительно визуальными средствами;
  2. отредактировать текст имеющегося запроса.

Программный код обычный конструктор не создает.

Конструктор запроса с обработкой результата - это один из инструментов разработки, который позволяет:

  1. сформировать текст нового запроса;
  2. сформировать программный код, содержащий создание объекта встроенного языка "Запрос", текста запроса, получение и обработку результата выполнения запроса (фрагмент программного кода, который исполняет запрос и выводит его результаты в табличный документ или диаграмму - отсюда );
  3. отредактировать текст имеющегося запроса.

Конструктор запросов может использоваться:

  • разработчиком - в конфигураторе (необходимо знание языка запросов);
  • пользователем - в режиме 1С:Предприятие (как обработка "Консоль запросов").

Использование в режиме 1С:Предприятие позволяет квалифицированным пользователям самостоятельно получать выборки данных, для которых нет типовых отчетов.

Вызов конструктора текста запроса 1С:

  1. контекстным меню (правой кнопкой мыши) в нужном месте программного кода;
  2. с помощью команды "Конструктор запроса. " меню "Текст".


Вызов конструктора запроса 1С


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

Таким образом, разработчик может составить работоспособный запрос, даже не владея синтаксисом языка запросов - необходимые синтаксические конструкции конструктор сгенерирует автоматически. Готовый текст запроса может быть сразу же вставлен в текст модуля или скопирован в буфер обмена.

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

Текст запроса может содержать описание предопределенных данных конфигурации:

  1. значения системных перечислений (из определенного перечня);
  2. предопределенных данных (справочники, перечисления, планы видов характеристик, планов счетов, планов видов расчета);
  3. пустые ссылки;
  4. значения точек маршрута бизнес процессов.

Вкладки конструктора запроса 1С


На этой вкладке указывается источник данных и поля, которые необходимо выводить в отчет (по сути описываются конструкции ВЫБРАТЬ … ИЗ).

В качестве источников данных могут служить:

  • физическая таблица базы данных;
  • виртуальная таблица регистров; ;
  • вложенные запросы и т.д.

В контекстном меню виртуальных таблиц можно задать параметры этих таблиц.

На закладке "Таблицы и поля" конструктора запросов задают:

  1. источники данных запросов, в качестве которых могут выступать реальные и виртуальные таблицы;
  2. набор полей из таблиц - источников данных запроса;
  3. поля в виде произвольного выражения.

Закладка "Связи" становится доступна сразу после добавления двух таблиц.

На закладке "Связи" конструктора запросов можно определить соединение таблиц-источников данных и связи между ними.

Язык запросов предоставляет широкие возможности по построчному соединению нескольких таблиц.

Соединение таблиц может быть:

  • безусловным ;
  • условным (или по ключу ), то есть по заданному условию связи:
    1. полным - все записи обеих таблиц; для тех, которым не нашлось соответствия, запрос возвращает NULL;
    2. левым/правым - все записи из соответственно левой/правой таблицы (из противоположной только те, которым есть соответствие), для не найденных запрос возвращает NULL. Примечание : консоль запросов всегда преобразует правое соединение в левое, меняя таблицы местами (в случае, если запрос написать вручную, и потом открыть конструктором);
    3. внутренним - только совпадающие записи обеих таблиц.

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

На практике чаще встречаются задачи соединения по определенному полю двух таблиц.

В конструкторе запросов тип условного соединения регулируется флажком "Все" - где он стоит, из той таблицы и выбираются все записи.

Флажок "Все", устанавливаемый у таблицы, выбранной на закладке "Связи" конструктора запросов означает что в результат запроса надо включить все записи этой таблицы.

Флажок

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

Вкладка

На данной вкладке система позволяет группировать и суммировать нужные поля результата таблицы. Описывается использование конструкций СГРУППИРОВАТЬ ПО, СУММА, МИНИМУМ, СРЕДНЕЕ, МАКСИМУМ, КОЛИЧЕСТВО, КОЛИЧЕСТВО РАЗЛИЧНЫХ.

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

  • на те, по которым производится группировка;
  • на агрегатные функции (рассчитываемые поля);
  • на поля вложенных таблиц.

Вложенные таблицы не попадают ни в группируемые, ни в агрегируемые поля.

Количество записей в результате запроса можно узнать с помощью агрегатной функции КОЛИЧЕСТВО(*).

Вкладка

Отвечает за все условия, накладываемые на получаемые данные, т.е. за всё, что идёт в тексте запроса после конструкции ГДЕ.

Вкладка

Вкладка "Дополнительно" включает важные параметры.

Группировка "Выборка записей":

  • Первые — параметр, возвращающий в запрос только N записей (оператор ПЕРВЫЕ ); позволяет вывести в отчет первые N записей, которые будут отобраны с учетом правил упорядочивания, настроенных в конструкторе запросов;
  • Без повторяющихся — обеспечивает уникальность полученных записей (оператор РАЗЛИЧНЫЕ) и позволяет исключить из результирующей таблицы запроса одинаковые строки (данная операция распространяется только на детальные записи );
  • Разрешенные — позволяет выбирать только те записи, которые позволяет выбрать система с учетом настройки RLS (конструкция РАЗРЕШЕННЫЕ).

Группировка "Тип запроса":

  • определяет тип запроса:
    1. Выборка данных;
    2. Создание временной таблицы;
    3. Уничтожение временной таблицы.

Флаг "Блокировать получаемые данные для последующего изменения":

  1. позволяет включить возможность установки блокировки данных, которая обеспечивает сохранность данных от момента их чтения до изменения (актуально только для "Автоматического режима блокировок", конструкция ДЛЯ ИЗМЕНЕНИЯ); позволяет заблокировать данные указанных таблиц-источников на чтение (в рамках транзакции).
  2. в режиме автоматических транзакционных блокировок) происходят блокировки:
    • в варианте файл-сервер - на уровне таблиц базы данных;
    • в варианте клиент-сервер - на уровне записей таблиц базы данных.
  3. Если список "Таблицы для изменения" - пуст, то будут блокироваться данные всех таблиц, задействованных в запросе, иначе - только таблиц, указанных в списке.

Вкладка

Конструктор запросов 1с позволяет создавать объединения запросов. При их помощи можно последовательно выводить в результат данные, полученные из нескольких запросов, не используя при этом связи. Единственной условие для объединения — одинаковый набор полей в каждом отдельном запросе.

На этой закладке устанавливается возможность объединения разных таблиц и псевдонимы (конструкция КАК).

В левой части указываются таблицы, если установить флаги напротив таблицы, будут использоваться конструкции ОБЪЕДИНИТЬ, иначе — ОБЪЕДИНИТЬ ВСЕ (отличия двух способов тут ).

В правой части указываются соответствия полей в разных таблицах, если соответствие не указано, запрос будет возвращать NULL.

Особенности использования закладки "Объединения/Псевдонимы" конструктора запросов:

  1. На закладке "Объединения/Псевдонимы" конструктора запросов можно:
    • Задать список запросов (в результирующую выборку попадут записи всех указанных запросов).
    • Задать имена полей результирующей таблицы.
  2. При создании запросов, участвующих в объединении , с помощью конструктора запросов, он сам добавит в каждый запрос необходимое количество недостающих полей со значением NULL. Настроить соответствие добавленных конструктором полей и полей результата запроса можно на закладке "Объединения/Псевдонимы".
  3. Настройки, сделанные в разделе "Объединения/Псевдонимы" конструктора запросов, отразятся на информации, отображаемой в других разделах конструктора, следующим образом:
    • Если заданы псевдонимы полей результирующей таблицы, то новые названия появляются на закладке "Порядок" в списке полей.
    • При объединении запросов на ряде закладок (в том числе "Таблицы и поля") появляется возможность переключения между объединяемыми запросами.
  4. При объединении двух запросов на закладке "Объединения/Псевдонимы" конструктора запросов условие связи между запросами задать нельзя: в случае объединения связь всегда безусловна.

Используя конструктор запроса, повлиять на порядок записей в результирующей таблице запроса можно:

  1. на закладке "Порядок";
  2. на закладке "Объединения/Псевдонимы".

Таблица, полученная в результате запроса, может быть отсортирована по алфавиту по нужному полю:

  1. по полю, присутствующему в запросе;
  2. по любому полю таблицы-источника (кроме случаев объединенных запросов).

Помимо указания порядка для конкретного поля, можно воспользоваться опцией "Автоупорядочивание", которая отсортирует список по основному представлению объекта.

Вкладка

Указывается порядок сортировки значений (УПОРЯДОЧИТЬ ПО) — по убыванию (УБЫВ) или возрастанию (ВОЗР).

Флаг "Автоупорядочивание" (в запросе — АВТОУПОРЯДОЧИВАНИЕ):

  • если установлен, то система будет сортировать данные (по умолчанию система 1С 8.3 выводит данные в «хаотичном» порядке).

Если на закладке "Порядок" конструктора запросов не заданы настройки, то установка флага "Автозаполнение" обусловит следующее:

  1. записи в результирующей таблице запроса будут упорядочены по полям сортировки по умолчанию для таблиц-источников данных;
  2. если заданы настройки на станицах "Группировка" или "Итоги", то порядок записей в результирующей таблице запроса будет определяться этими настройками.

В случае установки флага "Автоупорядочивание" на закладке "Порядок" конструктора запросов записи в результирующей таблице запроса (если эта таблица уже упорядочена по полю, хранящему ссылку на иерархический справочник) будут упорядочены по значению основного представления для этого поля. Т.е. если справочник отсортирован по ссылке (= наименованию), но основное его представление - код, то после включения автоупорядочивания сортировка изменится на сортировку по коду.

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

В ней указывается:

  1. Поле, по которому группируем, и тип его итогов:
    • Элементы - итоги только по конечным элементам;
    • Элементы и иерархия - итоги по папкам и по конечным элементам;
    • Только иерахия - итоги только по папкам.
  2. Флаг "Общие итоги" - суммирование всех полученных запросом строк;
  3. Итоговое поле - по которому собственно и считаем итоги.

Таким образом, при использовании секции "ИТОГИ . ПО" количество записей в результате запроса увеличится (по сравнению с их количеством без секции "ИТОГИ . ПО").

Результатом запроса с итогами будет дерево значений:

Вкладка

На этой вкладке можно создавать новые пакеты запросов, а также использовать её для навигации.

В тексте запроса пакеты разделяются символом «;» (точка с запятой).

Особенности использования конструктора запросов 1С

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

    Создание вложенного запроса 1С

    1. открыть закладку "Таблицы и поля";
    2. в командной панели над деревом " Поля " нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню.

    Укажем в конструкторе одно суммируемое поле:По остальным полям будет произведена группировка в тексте запроса:

    При использовании в качестве источника данных для запроса внешнего источника (данные которого передаются через параметр) в качестве такого источника может использоваться:

    Читайте также: