如何在信息中实现特定组的累积和

时间:2015-11-25 03:45:23

标签: transformation informatica informatica-powercenter

我有以下数据集

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

我希望使用获得以下输出。所有数据都根据ESNDATE进行排序。我必须在SUMESN的基础上计算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

请为我提供适当的解决方案。

1 个答案:

答案 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对数据进行排序