informatica-powercenter-лучший способ реализовать логику SQL «между»

Мне нужно реализовать SQL statment с более чем одним подзапросом в Informatica PowerCenter.

В одном из них я застрял, потому что я бы использовал, как предложено в другом ответе, 2 Source Qualifier, а затем компонент Joiner, но мне нужно иметь условие между следующим образом:

TableB.columnID BETWEEN TableA.columnID AND TableB.column_ID

К сожалению, я еще не нашел способа реализовать это условие, которое у меня есть в операторе where, как вы можете видеть из полного SQL.

Насколько я знаю, насколько мне известно, в PowerCenter компонент преобразования SQL не может получить значение из 2 квалификаторов источника.

Решение, которое я нашел до сих пор, заключается в том, чтобы поместить условие между в SQL Override в квалификаторе источника, как на изображении:

Все статусы SQL и мое решение в виде Переопределение SQL:

Переопределение SQL


person Carmine Tambascia    schedule 22.02.2017    source источник


Ответы (2)


Критерии соответствия в объединении Может быть только '='

Если соединение не является «полным внешним», вы можете использовать преобразование поиска, настроенное для возврата ВСЕХ строк при совпадении (не любых, первых или последних)

Критерии соответствия в поисках могут быть '> =', '‹=', '‹>', а также '='.

Руководство доступно здесь: https://dwbi.org/etl/informatica/139-active-lookup-transformation

person Lars G Olsen    schedule 22.02.2017

Если вы решите использовать 2 квалификатора источника и преобразование объединения, вы можете применить условие между впоследствии в преобразовании «Фильтр». В преобразовании фильтра у вас будет выражение, подобное приведенному ниже.

TableB_ID >= TableA_VON_ID AND TableB_ID <= TableB_BIS_ID
person Samik    schedule 22.02.2017
comment
Это Решение, которое следует использовать только с очень небольшими объемами данных, поскольку чартово произведение будет существовать в буферной памяти DTM между соединителем и фильтром. - person Lars G Olsen; 23.02.2017