簡體   English   中英

使用下一個記錄開始日期更新informatica中的上一個記錄結束日期

[英]previous record end date update in informatica using next record start date

我有一個關於使用下一個記錄開始日期更新上一個記錄的結束日期的問題。 問題是兩條記錄都以相同的表負載進入。 除了所有列的組合之外,沒有唯一的行標識符。 示例:源表

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編號更改時我必須用第二條記錄(即HICN Y456的記錄)的開始日期更新第一條記錄(即HICN X123的記錄)的end_date,所以我的目標應類似於:

\n HICN FIRST_NAME LAST_NAME M_NAME DOB(字符串)START_DATE END DATE\n X123 ABC DEF M'19600101 2013年1月1日2014年2月2日\n Y456 ABC DEF M 19600101 2/2/2014 12/31/1990\n

我已經想出了第二次運行如何更新日期cols和flag(我在上面沒有提到的成員的活動和非活動hicn),但是不確定如果兩個記錄都在同一批中時該怎么做。 任何幫助將不勝感激。 謝謝

嘗試以下選項:

  1. 在目標表中使用VARCHAR2(100)在ROW_ID之類的表中創建一列

  2. 使用以下命令在Expression轉換中創建一個Expression-

    MD5(Col1 ||' '|| col2 ||' '|| ...等)

    '*'-是獲取精確輸出的分隔符

    此MD5函數將生成一個32位掩碼,我們將在后續步驟中使用它

  3. 在目標表上進行動態查找

現在,每當您收到新行時,它將被添加到目標以及動態查找中 因此,如果您嘗試將ROW_ID字段與計算出的第二行ROW_ID進行匹配,則可以輕松地找到重復的記錄。

MD5是使用整個列列表查找重復項的最好,最快的方法之一。 不要急於創建動態查找,否則您將無法找到公仔。

讓我知道您是否需要更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM