‎2007 Mar 08 5:27 PM
I have one Internal Table.
Customer Amount1 Ammount2
333 470.4 2352
333 2822.4 0
953 4166.67 20833.33
953 20833.33 0
953 25000 0
953 19230.77 480769.23
953 336134.45 0
953 63865.55 336134.45
I want to single for each customer with Amount1 and Amount 2 sumup.
Could any body help me.
‎2007 Mar 08 5:45 PM
Hi Vijay,
Use <b>COLLECT itab</b> to meet your requirement.
(or) Code as follows
DATA:
V_AMT1 TYPE I,
V_AMT2 TYPE I.
SORT ITAB BY CUSTOMER.
LOOP AT ITAB.
AT NEW CUSTOMER.
V_CUSTOMER = ITAB-CUSTOMER.
ENDAT.
V_AMT1 = V_AMT1 + ITAB-AMOUNT1.
V_AMT2 = V_AMT2 + ITAB-AMOUNT2.
AT END OF CUSTOMER.
ITAB_SUM-CUSTOMER = V_CUSTOMER.
ITAB_SUM-AMOUNT1 = V_AMT1.
ITAB_SUM-AMOUNT2 = V_AMT2.
APPEND ITAB_SUM.
CLEAR V_AMT1.
CLEAR V_AMT2.
ENDAT.
ENDLOOP.
Thanks,
Vinay
Thanks,
Vinay
‎2007 Mar 08 5:30 PM
Hello,
When u are append ing the itab use <b>COLLECT ITAB</b>
Vasanth
‎2007 Mar 08 5:43 PM
hi vijaya
this is the sample code ,pls do modification as per ur requirements
REPORT zcollect.
TYPES:BEGIN OF t_mytype,
key_c(10) TYPE c,
key_n(10) TYPE n,
key_i TYPE i,
number TYPE i,
END OF t_mytype.
DATA:gi_mytable TYPE SORTED TABLE OF t_mytype
WITH NON-UNIQUE KEY key_c key_n key_i,
wa_mytable TYPE t_mytype.
START-OF-SELECTION.
CLEAR wa_mytable.
wa_mytable-key_c = '10'.
wa_mytable-key_n = '25'.
wa_mytable-key_i = 5.
wa_mytable-number = 400.
COLLECT wa_mytable INTO gi_mytable.
CLEAR wa_mytable.
wa_mytable-key_c = '10'.
wa_mytable-key_n = '25'.
wa_mytable-key_i = 5.
wa_mytable-number = 500.
COLLECT wa_mytable INTO gi_mytable.
CLEAR wa_mytable.
wa_mytable-key_c = '11'.
wa_mytable-key_n = '30'.
wa_mytable-key_i = 6.
wa_mytable-number = 200.
COLLECT wa_mytable INTO gi_mytable.
CLEAR wa_mytable.
wa_mytable-key_c = '11'.
wa_mytable-key_n = '30'.
wa_mytable-key_i = 6.
wa_mytable-number = 900.
COLLECT wa_mytable INTO gi_mytable.
CLEAR wa_mytable.
wa_mytable-key_c = '11'.
wa_mytable-key_n = '30'.
wa_mytable-key_i = 7.
wa_mytable-number = 100.
COLLECT wa_mytable INTO gi_mytable.
END-OF-SELECTION.
LOOP AT gi_mytable INTO wa_mytable.
WRITE: / wa_mytable-key_c,
wa_mytable-key_n,
wa_mytable-key_i,
wa_mytable-number.
ENDLOOP.
thanks and regard
satya
‎2007 Mar 08 5:45 PM
Hi Vijay,
Use <b>COLLECT itab</b> to meet your requirement.
(or) Code as follows
DATA:
V_AMT1 TYPE I,
V_AMT2 TYPE I.
SORT ITAB BY CUSTOMER.
LOOP AT ITAB.
AT NEW CUSTOMER.
V_CUSTOMER = ITAB-CUSTOMER.
ENDAT.
V_AMT1 = V_AMT1 + ITAB-AMOUNT1.
V_AMT2 = V_AMT2 + ITAB-AMOUNT2.
AT END OF CUSTOMER.
ITAB_SUM-CUSTOMER = V_CUSTOMER.
ITAB_SUM-AMOUNT1 = V_AMT1.
ITAB_SUM-AMOUNT2 = V_AMT2.
APPEND ITAB_SUM.
CLEAR V_AMT1.
CLEAR V_AMT2.
ENDAT.
ENDLOOP.
Thanks,
Vinay
Thanks,
Vinay
‎2007 Mar 08 6:46 PM
HI Vijay,
Use COLLECT instead of append itab.
or if u get values from select statement then..
Loop at itab.
move-corresponding itab to btab.
collect btab.
endloop.
btab has records on customer basis.
Regards
SAB
‎2007 Mar 08 10:45 PM