Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Calculation on Internal Table

former_member303185
Participant
0 Likes
654

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
634

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

5 REPLIES 5
Read only

Former Member
0 Likes
634

Hello,

When u are append ing the itab use <b>COLLECT ITAB</b>

Vasanth

Read only

Former Member
0 Likes
634

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

Read only

Former Member
0 Likes
635

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

Read only

Former Member
0 Likes
634

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

Read only

Former Member
0 Likes
634

Use <b>Collect</b> Statement