СОЗДАНИЕ ВЫБОРКИ НА БАЗЕ ТАБЛИЦЫ

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


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

Формирование SQL запроса типа select.
SQL запрос будет состоять из полей основной таблицы и полей свзянных (join) таблиц. По умолчанию, в запросе с основной таблицей связываются все таблицы на которые имеется внешний ключ. Если к основной таблице не нужно присоединять внешнюю, то нужно снять признак "JOIN" в поле "Внешняя таблица / присоединить". Поля которые нужно включить в SQL запрос отмечаются с помощью признака "Включить в SELECT" как для основной, так и для внешней таблицы.


Создание модифицирующих запросов.
По умолчанию, для выборки будт созданы модифицирующие запросы INSERT, UPDATE, DELETE и REFRESH. Если модифицирующий запрос не требуется, то необходимо в соотвествующем запросу переключателе выбрать "None".

Каждый из запросов может быть обернут в конструкцию execute block. Для этого нужно поставить переключатель соответствующего запроса в положение "Execute". После того как все настройки будут сделаны, необходимо нажать кнопку "Создать выборку". После этого, новую выборку можно будет найти в дереве объектов рабочего стола для ее дальнейшей корректировки.
SQL запрос, сформированный для рассматриваемого примера на рисунке, будет выглядеть следующим образом:

select
  a.ID_BANKACCOUNT,
  a.ID_AGENT,
  a.ID_BANK,
  a.ACCOUNT,
  a.FILIAL,
  a.IS_DEFAULT,
  a.ID_CURRENCY,
  c.BIK,
  c.NAME,
  c.CORR_ACC
from
  BASE_BANKACCOUNTS a
  left join BASE_AGENTS b on a.ID_AGENT=b.ID_AGENT
  left join BASE_BANKS c on a.ID_BANK=c.ID_BANK
  left join BASE_CURRENCIES d on a.ID_CURRENCY=d.ID_CURRENCY