02-08-2007 1:28 PM
Hi,
T_Master_Record
PNo. Data Amount
1 01/04/07 100
2 10/04/07 200
3 10/04/07 300
7 10/04/07 100
T_Trans_Record
PNo. Data Amount
1 01/04/07 50
2 10/04/07 60
1 10/04/07 70
2 10/04/07 20
1 10/04/07 30
T_Final_Record
PNo. Data Amount
1 01/04/07 165
2 10/04/07 200
3 10/04/07 300
7 10/04/07 100
Here I have Three Internal Table, I want to do,
1. If PNo of T_Master_Record present in table T_Trans Record then
Add amount of T_Master_Record with T_Trans Record. Like Add 100507+3 = 165.
And append in table T_Final Record.
2. If PNo of T_Master_Record not present in T_Trans Record then append that PNo. With Amount in T_Final_Record
How will I do this.
Thanks,
Saroj
02-08-2007 2:36 PM
hi,
try sth like that:
loop at t_master_record.
T_Final_Record = t_master_record.
collect T_Final_Record .
loop at T_Trans_Record where pno = t_master_record-pno.
T_Final_Record = T_Trans_Record.
collect T_Final_Record .
endloop.
endloop.
A.
02-08-2007 2:47 PM
Hi,
loop at T_Master_Record .
read table T_Trans_Record with key PNo = T_Master_Record-PNo.
if sy-subrc = 0.
read table T_Final_Record with key PNo = T_Master_Record-PNo.
if Sy-subrc = 0.
T_Final_Record-Amount = T_Master_Record-Amount + T_Final_Record-Amount
modify T_Final_Record.
else.
T_Final_Record-Amount = T_Master_Record-Amount
Move T_Master_Record-PNo = T_Final_Record-PNo
T_Master_Record-Data = T_Final_Record-Data
append T_Final_Record
endif.
else.
Move T_Trans_Record-PNo = T_Final_Record-PNo
T_Trans_Record-Data = T_Final_Record-Data
T_Trans_Record-Amount = T_Final_Record-Amount
append T_Final_Record.
endif.
Endloop.
02-08-2007 2:50 PM
Hi Saroj,
SORT T_MASTER_RECORD BY PNO.
SORT T_TRANS_RECORD BY PNO.
DATA V_AMOUNT TYPE PNO.
LOOP AT T_MASTER_RECORD.
MOVE-CORRESPONDING T_MASTER_RECORD TO T_FINAL_RECORD.
V_AMOUNT = T_MASTER_RECORD-AMOUNT.
LOOP AT T_TRANS_RECORD WHERE PNO = T_MASTER_RECORD-PNO.
V_AMOUNT = V_AMOUNT + T_TRANS_RECORD-AMOUNT.
ENDLOOP.
T_FINAL_RECORD = V_AMOUNT.
APPEND T_FINAL_RECORD.
CLEAR T_FINAL_RECORD.
CLEAR V_AMOUNT.
ENDLOOP.
THanks,
Vinay