CftClub.ru
Клуб специалистов ЦФТ-Банк

Выборка

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих
Предыдущая тема :: Следующая тема  
Автор Сообщение
d7d1cd
Участник со стажем


Вступление в Клуб: 21.01.2022
СообщениеПн Фев 28, 2022 14:21   Выборка Ответить с цитатой
Полезность: Нет оценки
Всем привет. В таблице z#main_docum есть реквизит плательщика. Причем он может быть клиентом банка или не клиентом банка. Как написать код PL/Plus, который для каждого платежного документа покажет ИНН плательщика?

Для меня проблема в том, что ИНН хранится в другом ТБП, "путь" к которому из MAIN_DOCUM проложен через несколько полей с id. В голове рисуется чрезвычайно сложный sql запрос, хотя мне кажется, что в ЦФТ это должно реализовываться проще.
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеВт Мар 01, 2022 09:00   Re: Выборка Ответить с цитатой
Полезность: 1
d7d1cd пишет:
В таблице z#main_docum есть реквизит плательщика. Причем он может быть клиентом банка или не клиентом банка. Как написать код PL/Plus, который для каждого платежного документа покажет ИНН плательщика?


Не скажу, что это сверхпросто, но примерно так:
sql:
Код:
select
case when d.c_kl_dt#0 = 1 then   --   клиент банка
      ( select x.c_inn from z#client x where x.id = d.c_kl_dt#1#1)
   when d.c_kl_dt#0 = 2 then   --   НЕ клиент банка, ИНН хранится в документе
      d.c_kl_dt#2#inn
   else   'хз'
end
from z#main_docum d


pl+:
Код:
select d(
case when d.[kl_dt].[0] = 1 then   --   клиент банка
      ( select x(x.[inn]) in ::[client] where x = d.[kl_dt].[1].[1])
   when d.[kl_dt].[0] = 2 then   --   НЕ клиент банка, ИНН хранится в документе
      d.[kl_dt].[2].[inn]
   else   'хз'
end
) in ::[main_docum]
d7d1cd
Участник со стажем


Вступление в Клуб: 21.01.2022
СообщениеВт Мар 01, 2022 09:22    Ответить с цитатой
Полезность: 1
Спасибо. Уже сам дошел до такого:
Код:
type main is
  select d(
    decode(d.[KL_DT].[0], 1, d.[KL_DT].[1].[1].[INN], d.[KL_DT].[2][INN]) : INN_PLAT
  )
  in ::[MAIN_DOCUM];
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
Страница 1 из 1

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