Отчёты
Разработка

построитель select и Left outer join

ДД
не пойму как в построителю сказать - что в зависимости от значения поля в основной табле, в рез выборку в заданное поле - попало значение поля либо из одной таблицы либо из другой, прикрученных по Left outer join

Нравится

6 комментариев

В SQL есть такая конструкция как CASE WHEN, которая позволяет выбирать в одну колонку данные из разных полей в зависимости от логического условия. Для того, чтобы ей воспользоваться, добавьте в sq_ сервис запроса колонку типа "Колонка с текстом SQL". Пример того, что может быть там написано.

(CASE WHEN Communication1 is not null THEN Communication1 ELSE Communication2 END)

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

select (CASE WHEN Communication1 is not null THEN Communication1 ELSE Communication2 END) from tbl_Account

В данном примере выбирается средство связи 1 или средство связи 2 если средство связи 1 не заполнено.

order by на такой колум натравить?

По колонке типа SQL Column в сервисе запроса сделать сортировку нельзя.

"Гакало Игорь Александрович" написал:

По колонке типа SQL Column в сервисе запроса сделать сортировку нельзя.


ну очень порадовала наличие такой возможности
Чем лечить, либо Аналог?

"Самсон" написал:ну очень порадовала наличие такой возможности
Чем лечить, либо Аналог?

Делайте свой View, регистрируете как сервис таблицы (было описание на комьюнити) и работаете как с обычной таблицей в сервисе запроса

Можете попробовать включить сортировку из кода, получив объект SelectQuery

SelectQuery.Items(0).Columns.ItemsByAlias('<SQLColumnName>').OrderType = 1
SelectQuery.Items(0).Columns.ItemsByAlias('<SQLColumnName>').OrderPosition = 0
Показать все комментарии