我有以下数据集
ESN | DATE | SV_NO
123 | 22-NOV | 2
123 | 23-NOV | 2
123 | 25-NOV | 3
123 | 27-NOV | 2
123 | 27-NOV | 3
123 | 28-NOV | 4
123 | 28-NOV | 2
124 | 21-NOV | 0
124 | 23-NOV | 3
124 | 24-NOV | 3
124 | 25-NOV | 2
124 | 27-NOV | 2
124 | 28-NOV | 3
124 | 30-NOV | 0
我希望使用informatica获得以下输出。所有数据都根据ESN
和DATE
进行排序。我必须在SUM
和ESN
的基础上计算SV_NO
。0.11值存储在一个变量端口中。
ESN | DATE | SV_NO | SUM
123 | 22-NOV | 2 | 0.11
123 | 23-NOV | 2 | 0.22
123 | 25-NOV | 3 | 0.11
123 | 27-NOV | 2 | 0.33
123 | 27-NOV | 3 | 0.22
123 | 28-NOV | 4 | 0.11
123 | 28-NOV | 2 | 0.44
124 | 21-NOV | 0 | 0.11
124 | 23-NOV | 3 | 0.11
124 | 24-NOV | 3 | 0.22
124 | 25-NOV | 2 | 0.11
124 | 27-NOV | 2 | 0.22
124 | 28-NOV | 3 | 0.33
124 | 30-NOV | 0 | 0.22
请为我提供适当的解决方案。
答案 0 :(得分:0)
首先按ESN和SV_NO对数据进行排序。然后在表达式转换中,执行以下操作:
ESN: <-- I/O port
DATE: <-- I/O port
SV_NO: <-- I/O port
v_CONST:=0.11
v_SUM:= IIF(ESN = v_prev_ESN AND SV_NO=v_prev_SV_NO, v_SUM+v_CONST, v_CONST)
o_SUM:= <-- Output port
v_prev_ESN:= ESN
v_prev_SV_NO:= SV_NO
现在,在加载目标
之前,再按ESN和DATE对数据进行排序