Редактор столбцов запроса
После того, как были добавлены таблицы в запрос (рис. 217), соответствующие окна появятся в поле закладки Мастер
. В этих окнах перечислены столбцы таблицы, а также присутствует строка * [all_columns]
. Она предназначена для добавления всех столбцов таблицы в редактор столбцов запроса (табличное поле в левой нижней части Мастера
). Также добавить все столбцы таблицы в редактор можно, выполнив пункт меню Добавить все колонки для узла данной таблицы (рис. 217).
В редакторе столбцов запроса изначально установлен один столбец с выражением *. Это означает, что выборка будет производиться по всем столбцам таблиц, включенных в поле закладки Мастер
.
Например, для конфигурации, указанной на рисунке 217, запрос будет иметь вид:
'SELECT * FROM "SYSTEM"."$$$ATTRI" AS "$$$ATTRI", "SYSTEM"."$$$SYSRL" AS "$$$SYSRL"';
Для добавления столбца таблицы в редактор предусмотрен механизм Drag-n-Drop. Другими словами, для добавления столбца $$$S23 в редактор необходимо нажать на этом столбце левую кнопку мыши и, не отпуская ее, перетащить столбец в редактор столбцов. Далее следует отпустить левую кнопку мыши. При этом в редакторе столбцов появится новый столбец (рис. 218).
Поле Наименование
содержит название для данного столбца (строка длиной от 1 до 66 символов).
Поле Выражение
задает выражение, которое будет отображено в запросе. По умолчанию это < имя_таблицы >.< имя_столбца >. Например, в этом поле можно задавать агрегирующие функции, типа COUNT
, AVG
, SUM
и т.д.
Поле Выводить на экран
управляет видимостью данного столбца. Невидимые поля могут использоваться для задания дополнительных условий по AND
.
В поле Сортировка
указывается тип сортировки данного столбца. Если сортировка задана по нескольким столбцам, то они будут отсортированы в порядке их включения в редактор столбцов. Например, если в таблице AUTO
мы выбираем два столбца MODEL
и HORSEPWR
и устанавливаем им сортировку По убыванию
и По возрастанию
, соответственно, то запрос к базе данных будет выглядеть так:
SELECT "AUTO"."MODEL" AS "MODEL", "AUTO"."HORSEPWR" AS "HORSEPWR" FROM "SYSTEM"."AUTO" AS "AUTO" ORDER BY "AUTO"."MODEL" DESC, "AUTO"."HORSEPWR"
Для того чтобы в сортировке поменять местами MODEL
и HORSEPWR
, необходимо в редакторе столбцов добавлять сначала HORSEPWR
, а потом MODEL
.
Поле Группировка
управляет типом условий, которые будут налагаться на данный столбец. Если выставлено значение Выражения
, то в запросе будет фигурировать только строка, заданная в поле Выражение
. Если указано значение Группировка
, то будет выполнена группировка по данному столбцу. Поля Условия
, или
, или
, … или
задают логические условия на выбираемые из столбца данные. Условия соединяются по оператору OR
, например, заданные условия для столбца COLOR
:
Условия 'RED' или 'GREEN' или 'BLACK'
в SQL-запросе будут иметь вид:
… WHERE "AUTO"."COLOR"='RED' OR "AUTO"."COLOR"='GREEN' OR "AUTO"."COLOR"='BLACK'
Для удаления столбца из редактора столбцов необходимо вызвать его контекстное меню (нажатием левой кнопки мыши на кнопке … в поле Наименование
или Выражение
) и выполнить пункт Удалить.
Примеры
-
Задача. Требуется выяснить, сколько столбцов в базе данных имеют в своем имени знак $.
Решение. Описание столбцов хранится в поле $$$S23 таблицы $$$ATTRI. Добавим эту таблицу в запрос. Перетащим в редактор столбцов столбец $$$S23. Установим наименование равным
Кол-во системных столбцов
, выражение –count(*)
, группировка –Выражения
, условия –like '%$%'
(рис. 219).Рисунок 219. Подсчет количества системных столбцов
-
Задача. В таблице
AUTO
содержится информация о модели машины, ее характеристиках, и ее владельце. Требуется выяснить, сколько машин каждой модели находится в таблице.Решение. Добавляем в запрос таблицу
AUTO
, перетаскиваем в редактор столбцовMODEL
иBODYTYPE
(например, на самом деле неважно, какой из столбцов будет вторым, поскольку он будет использоваться для установки агрегирующей функции). Затем выставляем для первого столбца наименование –Модель
, группировка –Группировка
. Для второго столбца наименование –Кол-во
, выражение –count(*)
, группировка –Выражения
(рис. 220).Рисунок 220. Вычисление количества для каждой модели