我可以使用DataStage比较这两行,然后在状态字段更改时更新吗?
ID | desc | ... | ... | Status | Start_Date | End_Date
------------------------------------------------------------
123456 | ... | ... | ... | Y | 12/31/2014 | 21/31/9999
123456 | ... | ... | ... | N | 12/31/2014 | current_date
一开始我只有这一行
ID | desc | ... | ... | Status | Start_Date | End_Date
------------------------------------------------------------
123456 | ... | ... | ... | Y | 12/31/2014 | 21/31/9999
然后......我想与这一行比较
ID | desc | ... | ... | Status | Start_Date | End_Date
------------------------------------------------------------
123456| ... | ... | ... | N | 12/31/2014 | current_date
如果状态字段从Y
更改为N
,我想用End_Date
更新current_date
。如果状态字段从N
更改为Y
,我想再次使用Start_Date
和current_date
再次End_Date
更新12/31/9999
。是否可以在DataStage中执行此操作?
我尝试使用Switch Processing,但在我想在Netezza Connector中更新时卡住了。
答案 0 :(得分:1)
仅从表中提取具有End_Date
= 12/31/9999
然后在ID
上查找阶段比较,在新记录中查找状态,如果匹配则转入更新文件,而不匹配的那个可以直接插入到表中。
在更新文件中,您必须保留新记录和从表中获取的数据。
现在对变压器satge中的ID
和Start_Date
上的记录进行排序,并且在stage变量中有if else条件,如果Status
为N则结束上一个日期的日期,填充当前日期的End_Date
= 12/31/9999
。
希望这有帮助。