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

SUM in ITAB

Former Member
0 Likes
1,406

hi guru's,

i have 5 fields in ITAB and 3 fields are numeric like below :

ITAB :

MATNR .... UNIT ..... QUANTITY ..... TOT_STOCK ..... BAL_QUANTITY

AAAA .... . NOS ..... 20 ......... 45 ........ 25

AAAA .... . NOS ..... 15 ......... 60 ........ 45

BBBB .... . NOS ..... 50 ......... 45 ........ 05

CCCC .... . KG ..... 15 ......... 60 ........ 45

CCCC .... . KG ..... 10 ......... 30 ........ 20

and i need add QUANTITY, TOT_STOCK and BAL_QUANTITY for same material and have to display single material.

i need final itab like this:

ITAB :

MATNR .... UNIT ..... QUANTITY ..... TOT_STOCK ..... BAL_QUANTITY

AAAA .... . NOS ..... 35 ......... 105 ........ 70

BBBB .... . NOS ..... 50 ......... 45 ........ 05

CCCC .... . NOS ..... 25 ......... 90 ........ 65

can anyone please help me?

regards saurabh.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,355

Hi,

Try this.

TYPES : BEGIN OF lty_tab,

field1(4) TYPE c,

field2(3) TYPE c,

field3 TYPE i,

field4 TYPE i,

field5 TYPE i,

END OF lty_tab.

DATA : lt_tab1 TYPE TABLE OF lty_tab,

lw_tab1 TYPE lty_tab,

lt_tab2 TYPE TABLE OF lty_tab,

lw_tab2 TYPE lty_tab,

lv_field2(3) TYPE c.

SORT lt_tab1 by field1.

LOOP AT lt_tab1 INTO lw_tab1.

lv_field2 = lw_tab1-field2. "moving to temp variable

AT NEW field1.

SUM.

lw_tab2-field1 = lw_tab1-field1.

lw_tab2-field2 = lv_field2.

lw_tab2-field3 = lw_tab1-field3.

lw_tab2-field4 = lw_tab1-field4.

lw_tab2-field5 = lw_tab1-field5.

APPEND lw_tab2 TO lt_tab2.

ENDAT.

CLEAR: lw_tab1,

lw_tab2,

lv_field2.

ENDLOOP.

Regards,

Roopa

hi guru's,

i have 5 fields in ITAB and 3 fields are numeric like below :

ITAB :

MATNR .... UNIT ..... QUANTITY ..... TOT_STOCK ..... BAL_QUANTITY

AAAA .... . NOS ..... 20 ......... 45 ........ 25

AAAA .... . NOS ..... 15 ......... 60 ........ 45

BBBB .... . NOS ..... 50 ......... 45 ........ 05

CCCC .... . KG ..... 15 ......... 60 ........ 45

CCCC .... . KG ..... 10 ......... 30 ........ 20

and i need add QUANTITY, TOT_STOCK and BAL_QUANTITY for same material and have to display single material.

i need final itab like this:

ITAB :

MATNR .... UNIT ..... QUANTITY ..... TOT_STOCK ..... BAL_QUANTITY

AAAA .... . NOS ..... 35 ......... 105 ........ 70

BBBB .... . NOS ..... 50 ......... 45 ........ 05

CCCC .... . NOS ..... 25 ......... 90 ........ 65

can anyone please help me?

regards saurabh.

12 REPLIES 12
Read only

Former Member
0 Likes
1,355

data: itab2 like STANDARD TABLE OF itab WITH HEADER LINE.
loop at itab.
  collect itab into itab2." ITAB2 is just like itab
endloop.

Edited by: tahir naqqash on Mar 2, 2009 11:30 AM

Read only

GauthamV
Active Contributor
0 Likes
1,355

Use control break statements.


At end of matnr.

Sum.

.....

endat.

Read only

I355602
Product and Topic Expert
Product and Topic Expert
0 Likes
1,355

Hi,

Use keyword:-

AT END OF and use aggregate function SUM to calculate the sum based on the fields as per your requirement.

Regards,

Tarun

Read only

0 Likes
1,355

Hi,

Use COLLECT Statement.

Regards,

Surendar Reddy.

Read only

Former Member
0 Likes
1,355

Hi Saurabh,

You can use :

Loop at itab.

AT END OF Matnr.

Then put-> SUM (Aggregate function) for the quantity field.

ENDAT.

Endloop.

Hope it helps

Regrds

Mansi

Read only

Former Member
0 Likes
1,355

Hi Saurabh,

sort itab1.

loop at itab1.

collect itab1 to itab2.

append itab2.

endloop.

loop at itab2.

write:/ ......

endloop.

Regards,

Mdi.Deeba

Read only

Former Member
0 Likes
1,355

hi,

try this..

use AT NEW ....ENDAT or ATEND.......ENDAT.

like below..




LOOP AT <internal table>.

    AT NEW<field name>.

      SUM.
     
      WRITE : /43 <internal tablename-field name>.

    ENDAT.

    

    AT END OF <field name>.

      SUM.
      
      WRITE : /43 <internal tablename-field name>

    ENDAT.


hope this help you

Regards

Ritesh J

Read only

Former Member
0 Likes
1,356

Hi,

Try this.

TYPES : BEGIN OF lty_tab,

field1(4) TYPE c,

field2(3) TYPE c,

field3 TYPE i,

field4 TYPE i,

field5 TYPE i,

END OF lty_tab.

DATA : lt_tab1 TYPE TABLE OF lty_tab,

lw_tab1 TYPE lty_tab,

lt_tab2 TYPE TABLE OF lty_tab,

lw_tab2 TYPE lty_tab,

lv_field2(3) TYPE c.

SORT lt_tab1 by field1.

LOOP AT lt_tab1 INTO lw_tab1.

lv_field2 = lw_tab1-field2. "moving to temp variable

AT NEW field1.

SUM.

lw_tab2-field1 = lw_tab1-field1.

lw_tab2-field2 = lv_field2.

lw_tab2-field3 = lw_tab1-field3.

lw_tab2-field4 = lw_tab1-field4.

lw_tab2-field5 = lw_tab1-field5.

APPEND lw_tab2 TO lt_tab2.

ENDAT.

CLEAR: lw_tab1,

lw_tab2,

lv_field2.

ENDLOOP.

Regards,

Roopa

Read only

Former Member
0 Likes
1,355

hi,

AT END OF matnr.

SUM.

.....

........

ENDAT.

thanks

Read only

Former Member
0 Likes
1,355

hi,

AT END OF matnr.

SUM.

.....

........

ENDAT.

thanks

Read only

Former Member
0 Likes
1,355

Hi,

Simply

1. Sort the internal table on the basis of matnr

2.then loop at the internal table

AT NEW MATNR

SUM

ENDAT.

will result in the sum of all the numberic based fields.

Hope this might help you.

Pooja

Read only

Former Member
0 Likes
1,355

Hi,

Use control break statements to display as per your requitement.

Regards

Md.MahaboobKhan