Scenario:
We have data from source is coming as below
Source is Oracle database:
---------- ----------
101 102
102 103
103 104
105 106
106 108
Need the output as below.
OLD_ID NEW_ID
---------- ------------
101 104
102 104
103 104
105 108
106 108
Solution:
Mapping def
Exp2
Sq --> Exp1 --> ---->Jnr ----> TGT
Agg
Explnation:
In exp1 ,add tow variable shown below
OLD_ID NEW_ID Diff_of_rows New_id
---------- ---------- ----------------- ----------
101 102 1 (1) 1
102 103 1 (102-101) 1
103 104 1 (103-102) 1
105 106 2 (105-103) 2
106 108 1 (106-105) 2
Diff_of_rows - you have to maintain the old_id of prev row in exp variable,then you have to minus it with current row lod_id
New_id - starting with one, if value of prev row of Diff_of_rows does not match with current row Diff_of_rows,increment value of new_id by 1.
Thane send below rows to Exp 2
OLD_ID NEW_ID New_id
---------- ---------- - ----------
101 102 1
102 103 1
103 104 1
105 106 2
106 108 2
and in Agg o/p
NEW_ID New_id
---------- ----------
104 1
108 2
Then join exp2 o/p with agg o/p based on New_id column so you will get required o/p
OLD_ID NEW_ID
---------- ------------
101 104
102 104
103 104
105 108
106 108
Comments
Post a Comment