Informatica Powercenter一对多SQ查询和映射问题

时间:2016-07-25 18:58:51

标签: informatica

我有多个VIEW,其中PERSON_VIEW与PHONE_VIEW具有一对多的关系。在下面的查询中,我得到了TOAD,以便为每个人记录正确输出结果为1行。

我在使用Informatica Powercenter时遇到问题。我将查询复制/粘贴到SQ SQL Query部分。

由于查询采用PHONE_NUMBER并检查PHONE_TYPE是否为HOME,BUSINESS或PERSONAL类型,因此会输出3个电话号码列,分别为HOME,BUSINESS和PERSONAL。

我在SQ Ports中创建了3个名为HOME,BUSINESS和PERSONAL的新列,以匹配查询输出列。当我验证查询时,它经常说它必须匹配来自SQ的28个端口。当我只添加1列并映射到Exp Transformation然后映射到Target时,它仍然会出现此错误。我计算了端口,它是29.如果我删除了电话列,它可以工作,计数是28.当我只添加一个电话列时,它会给出错误。

我想我错过了一步。

感谢任何帮助。

PERSON VIEW 1 John M. Doe

电话视图

1 111-111-1111 HOME 1 222-222-2222业务 1 333-333-3333工作

TOAD结果 1 John M. Doe 111-111-1111 222-222-2222 333-333-3333

这是QUERY(这在TOAD中有效)

SELECT PERSON.PERSON_ID, 
       PERSON.FIRST_NAME,
       PERSON.MIDDLE_NAME,
       PERSON.LAST_NAME,
       PHONE.HOME,
       PHONE.BUSINESS,
       PHONE.PERSONAL,
       PHONE_TYPE
FROM PERSON_VIEW PERSON
LEFT JOIN (SELECT * FROM (SELECT PERSON_ID, PHONE_TYPE,PHONE_NUMBER 
                           FROM PHONE_VIEW)
                           PIVOT
                           (
                             MAX(PHONE_NUMBER) 
                             FOR PHONE_TYPE  in ('HOME' AS HOME,'PERSONAL' AS        PERSONAL , 'BUSINESS' AS BUSINESS)

                           )

)PHONE ON PHONE.PERSON_ID = PERSON.PERSON_ID   

0 个答案:

没有答案