按日期和时间对数据进行排序,然后 select 下一个最小日期以更新 informatica 中的其他日期列
Sort data by date & time and then select the next min date to update the other date column in informatica
有这样的数据 这是一个 teradata table 这是我在 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
现在我的要求是下面的这组数据: 我如何使用或修改我的源 table 以获得下面的结果,这也是一个 table 在 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_OUT 端口中使用 IIF 语句:
IIF(STATUS = 'CLOSED', ADD_TO_DATE(START_DATE, 'MM', 1), END_DATE)
有这样的数据 这是一个 teradata table 这是我在 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
现在我的要求是下面的这组数据: 我如何使用或修改我的源 table 以获得下面的结果,这也是一个 table 在 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_OUT 端口中使用 IIF 语句:
IIF(STATUS = 'CLOSED', ADD_TO_DATE(START_DATE, 'MM', 1), END_DATE)