如何使用DataStage比较Netezza中的数据

时间:2015-07-13 05:56:10

标签: netezza datastage

我可以使用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_Datecurrent_date再次End_Date更新12/31/9999。是否可以在DataStage中执行此操作? 我尝试使用Switch Processing,但在我想在Netezza Connector中更新时卡住了。

1 个答案:

答案 0 :(得分:1)

仅从表中提取具有End_Date = 12/31/9999

的记录

然后在ID上查找阶段比较,在新记录中查找状态,如果匹配则转入更新文件,而不匹配的那个可以直接插入到表中。

在更新文件中,您必须保留新记录和从表中获取的数据。

现在对变压器satge中的IDStart_Date上的记录进行排序,并且在stage变量中有if else条件,如果Status为N则结束上一个日期的日期,填充当前日期的End_Date = 12/31/9999

希望这有帮助。