简体   繁体   English

如何在Informatica中为特定组实施累积总和

[英]How to implement cumulative sum for specific group in informatica

I have below data set 我有以下数据集

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

and I want to achieve below output using . 我想使用实现以下输出。 All data is sorted based on ESN and DATE . 所有数据均基于ESNDATE进行排序。 I have to calculate the SUM on the basis of ESN and SV_NO 0.11 value is stored in one variable port. 我必须基于ESNSV_NO 0.11值存储在一个可变端口中来计算SUM

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

Please provide me the proper solution for this. 请为此提供适当的解决方案。

First sort the data by ESN and SV_NO. 首先按ESN和SV_NO对数据进行排序。 Then in an Expression transformation, do the following: 然后在表达式转换中,执行以下操作:

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

Now, again sort the data by ESN and DATE before loading the target 现在,再次在加载目标之前按ESN和DATE对数据进行排序

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM