按日期和时间对数据进行排序,然后选择下一个最小日期以更新 informatica 中的其他日期列



具有这样的数据这是一个Teradata表,是我在Informatica中的来源

 S_ID      A_ID     START_DATE          END_DATE      STATUS
   1          a         01-02-2017         01-03-2017     CLOSED
   1          a         01-03-2017         31-12-9999     CLOSED       
   1          b         01-04-2017         31-12-9999     CLOSED
   1          c         01-05-2017         31-12-9999     ACTIVE

现在我的要求是下面的一组数据:我如何使用或修改源表以获取以下结果,这也是Teradata中的一个表(我也可以在源中使用SQLOVERRIDE预选赛)

 S_ID      A_ID     START_DATE          END_DATE      STATUS
   1          a         01-02-2017         01-03-2017     CLOSED
   1          a         01-03-2017         01-04-2017     CLOSED       
   1          b         01-04-2017         01-05-2017     CLOSED
   1          c         01-05-2017         31-12-9999     ACTIVE

只需使用表达式转换来馈送end_date,即发送出去的end_date,即使用end_date_out端口中的iif语句:

IIF(STATUS = 'CLOSED', ADD_TO_DATE(START_DATE, 'MM', 1), END_DATE)

最新更新