实际上,在这个映射中总共调用了4个表:市场、成本、A、B、
Read_sourceTB_B-----FIL1------->---------JNR4 \
| | |
| Read_sourceTB_Market--\ | |
| Read_sourceTB_Cost------JNR1--\ | |
| Read_sourceTB_A-----------------JNR2 JNR5--->EXP... -->TGT
| | | |
| | | |
| | | |
---------------------FIL2->---------JNR3 /SQ_TABLEB --FIL1-> -- JNR1 \
| | |
| SQ_TABLEA --| JNR3-->EXP.... -->TGT
| | |
|--FIL2-> -- JNR2 /**第一**合并条件
A LEFT JOIN B
ON A.MEMBERSHIPID = B.MEMBERSHIPID
Where B.System_Code='University'如果失败,则执行
**第二**结合条件
A LEFT JOIN B ON
A.address = B.address and A.phonenumber = B.phonenumber
Where B.System_Code='Policy'我应该使用哪种转换?我不知道如何使用Informatica,我的版本是InformaticaDeveloper10.5,请帮助me.Thanks!
我只知道如何
A left join B on `condition` `System_Code='University'`
left join B on `condition` `System_Code='Policy'`但我不知道如何决定如果A加入BSystem_Code='University'失败了,
然后A加入B System_Code='Policy'
发布于 2022-03-22 12:47:37
您需要基于两个不同的条件使用B(两次)连接A,然后将它们连接回一个管道,以便进行决策/如果-否则条件。另外,请注意,所有左联接实际上都是内部联接,因为在B.xxx='something'子句中使用的是where条件。
所以,考虑到上面的问题-
然后,
然后,
out_col1 = IIF( isnull(col_tableB_F1_jnr1),col_tableB_F2_jnr2, col_tableB_F1_jnr1)整个地图应该是这样的-
SQ_TABLEB --FIL1-> -- JNR1 \
| | |
| SQ_TABLEA --| JNR3-->EXP.... -->TGT
| | |
|--FIL2-> -- JNR2 /但我想你的要求可能是这样的-
A LEFT JOIN B
ON A.MEMBERSHIPID = B.MEMBERSHIPID AND B.System_Code='University'如果是,那么在inner join和JNR2中将JNR1更改为master outer join。
https://stackoverflow.com/questions/71570201
复制相似问题