使用下一个记录开始日期在informatica中更新先前的记录结束日期

时间:2017-10-13 04:45:31

标签: logic informatica-powercenter

我在使用下一个记录开始日期更新上一记录的结束日期时遇到问题。问题是记录进来,在同一个表中加载。除了所有列的组合之外,没有唯一的行标识符。 示例:源表

HICN       FIRST_NAME       LAST_NAME        M_NAME      DOB(string)  START_DATE
X123        ABC                DEF             M      '  19600101       1/1/2013
Y456        ABC                DEF             M         19600101       2/2/2014
现在,(这是我的业务要求,我无能为力)在目标中我有一个额外的列END DATE。这是第一次加载,我必须使用名字,姓氏等的连接组合即时识别 第一条记录和第二条记录是相同的,如果(并且仅当)HICN号码为成员更改,我必须使用第二条记录的Start_Date更新第一条记录的end_date(即带有HICN X123的记录)(即记录HICN Y456)所以我的目标应该是:

HICN FIRST_NAME  LAST_NAME   M_NAME     DOB(string)    START_DATE      END DATE
X123  ABC           DEF        M      '  19600101       1/1/2013       2/2/2014
Y456  ABC           DEF        M         19600101       2/2/2014      12/31/1990

我已经想出如何更新日期列和标志(我上面没有提到成员的活动和非活动hicn)第二次运行,但如果两个记录都在同一批次中,则不知道如何执行此操作。任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

尝试以下选项:

  1. 在目标表中创建一个列,如ROW_ID with VARCHAR2(100)

  2. 使用以下 -

    在表达式转换中创建表达式

    MD5(Col1中||' ' || || COL2' ' || ...等)

    ' *' - 是获得精确输出的分隔符​​

    这个MD5函数将生成一个32位掩码,我们将在后续步骤中使用它

  3. 在目标表上进行动态查找

  4. 现在,每次收到新行时,它都会添加到目标以及动态查找。因此,如果您尝试将ROW_ID字段与第二行计算的ROW_ID匹配,则可以轻松找到重复记录。

    MD5是使用整列列表查找重复的最佳和最快的方法之一。不要忘记创建动态查找,否则您将无法找到重复项。

    如果您需要更多信息,请与我们联系。