具有所需值的转换

时间:2017-10-12 21:06:22

标签: etl informatica-powercenter

我正在尝试使用powercenter设计师的流程,但我没有达到预期的目标。

我有这些初始数据:

CODE    CODE2   OPTION
001     A        89
001     A        55
001     A        12
002     B        25
002     A        59
025     A        44

我必须得到代码来执行以下操作:如果每个CODE有几个记录,那么你必须将OPTION2字段中的值1111放到OPTION字段中具有最高值的记录中,如果只有CODE中的一条记录也将值1111.我通过在powercenter中进行SORTER转换来实现这一点,而不是复杂的。  我不能做的是下一步。 OPTION字段中具有最高值的第二个记录对应于第一个字段的值,依此类推。

输出:

CODE    CODE2   OPTION  OPTION2
001      A       89     111111
001      A       55       89
001      A       12       55
002      A       59     111111
002      B       25       59
025      A       44     111111

我怎么能得到这个? 我应该使用什么转换?

谢谢! ^^

1 个答案:

答案 0 :(得分:0)

您可以按选项的代码和降序对其进行排序。然后在表达式变量中保存变量中前一个记录值的值。

v_OPTION2 = IIF(ISNULL(v_PREV_CODE) OR CODE != v_PREV_CODE, 
              111111, 
              v_PREV_OPTION
            )
out_OPTION2 = v_OPTION2
v_PREV_OPTION = OPTION
v_PREV_CODE = CODE