Как использовать переопределение lkp, если сопоставление имеет два lkp?

#informatica #lookup-tables

Вопрос:

У меня есть один src и 2 lkps. Во втором lkp я хочу использовать переопределение lkp.Во втором lkp мне нужно объединить три таблицы.

sql-запрос

 SELECT IPF.ID,listagg(country_name,',') within group(order by(id))  FROM  Table1 RG INNER JOIN  table2 IPF ON RG.ID=IPF.ID INNER JOIN table3 DR  ON DR.SDL_ID=RG.SDL_ID group by id;  

Ответ №1:

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

 SELECT  IPF.ID as id,listagg(country_name,',') within group(order by(id)) aggcntrname  FROM Table1 RG INNER JOIN table2 IPF ON RG.ID=IPF.ID INNER JOIN table3 DR ON DR.SDL_ID=RG.SDL_ID group by id, sdl_id, country_name Order by 1 --  

В вашем поиске должно быть 2 порта lookup и порты соединения.

 in_id --input id -- lkp port aggcntrname --lkp and return port length 4000.   

Условия присоединения будут указаны на id = in_id. Иногда список agg создает более 4000 строк символов и вызывает сбой. Будь осторожен с этим.

Комментарии:

1. ВЫБЕРИТЕ IPF. ИДЕНТИФИКАТОР,список(имя_страны,’,’) внутри группы(порядок по(идентификатору)) асконтрийное имя ИЗ таблицы 1 RG ВНУТРЕННЕЕ СОЕДИНЕНИЕ С таблицей 2 IPF НА RG.ID=IPF. ИДЕНТИФИКАТОР ВНУТРЕННЕГО СОЕДИНЕНИЯ table3 DR В группе DR. SDL_ID=RG.SDL_ID по идентификатору; Он отлично работает в бд.

2. я изменил ответ в соответствии с вашим комментарием.