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 int. table

Former Member
0 Likes
1,213

Hello!!

how can i sum all elements in int. table??

thanks!!

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,167

Hi



var = 0. 
loop at itab into wa.
var = var + wa-fld1
clear wa.
endloop.

regards

Shiva

10 REPLIES 10
Read only

Former Member
0 Likes
1,167

yes

hi,

U can Use 'AT' Function for checking Sum.. I'l give you a piece of code. Check to it..

Display the table T with sub-totals:

TYPES: BEGIN OF T_TYPE,

CODE(4),

SALES TYPE P,

DISCOUNT TYPE P,

END OF T_TYPE.

DATA: T TYPE STANDARD TABLE OF T_TYPE WITH NON-UNIQUE

DEFAULT KEY INITIAL SIZE 100,

WA_T TYPE T_TYPE.

...

LOOP AT T INTO WA_T.

AT FIRST.

SUM.

WRITE: /4 'Grand Total:',

20 WA_T-SALES, 40 WA_T-DISCOUNT.

ULINE. SKIP.

ENDAT.

WRITE: / WA_T-CODE,

20 WA_T-SALES, 40 WA_T-DISCOUNT.

AT END OF CODE.

SUM.

WRITE: / WA_T-CODE, 10 'Total:',

20 WA_T-SALES, 40 WA_T-DISCOUNT.

SKIP.

ENDAT.

ENDLOOP

Edited by: Abap-fresher on Feb 27, 2008 1:21 PM

Read only

0 Likes
1,167

Hi,

Check the following code:

DATA: BEGIN OF LINE,

COL1 TYPE C,

COL2 TYPE I,

COL3 TYPE I,

END OF LINE.

DATA ITAB LIKE HASHED TABLE OF LINE

WITH UNIQUE KEY COL1 COL2.

LINE-COL1 = 'A'.

DO 3 TIMES.

LINE-COL2 = SY-INDEX.

LINE-COL3 = SY-INDEX ** 2.

INSERT LINE INTO TABLE ITAB.

ENDDO.

LINE-COL1 = 'B'.

DO 3 TIMES.

LINE-COL2 = 2 * SY-INDEX.

LINE-COL3 = ( 2 * SY-INDEX ) ** 2.

INSERT LINE INTO TABLE ITAB.

ENDDO.

SORT ITAB.

LOOP AT ITAB INTO LINE.

WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.

AT END OF COL1.

SUM.

ULINE.

WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.

SKIP.

ENDAT.

AT LAST.

SUM.

ULINE.

WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.

ENDAT.

ENDLOOP.

Regards,

Bhaskar

Read only

Former Member
0 Likes
1,168

Hi



var = 0. 
loop at itab into wa.
var = var + wa-fld1
clear wa.
endloop.

regards

Shiva

Read only

0 Likes
1,167

Is there SUM(....) into ???

But how do I write it correct??

Thanks in advanced!

Read only

0 Likes
1,167

Hi Andrei,

dont use Sum( ) it is having very low perfomance. use control break statemetns. i.e AT FIRST, AT LAST, AT END .

sort your internal table by which u want the sum.

suppose ur internal table haing materila, quanity.

Ex:

data: begin of itab occurs 0,

matnr like mara-matnr,

menge like mseg-menge,

end of itab.

so ur having suppose 3 matirls and u want to sum quantity i.e menge as per material

use these syntax after u writing select qurey to get values in itab.

<b>sort itab by matnr.

loot at itab.

at end of matnr.

sum.

write: itab-matnr, itab-menge.

endat.

endloop.</b>

hope this is help you.

<REMOVED BY MODERATOR>

Reards,

sunil kairam.

Edited by: sunil kairam on Feb 27, 2008 6:31 PM

Edited by: Alvaro Tejada Galindo on Feb 27, 2008 3:09 PM

Read only

0 Likes
1,167

Thank you!

There is a code: I want to add two numbers from int. table.

REPORT zsumtest.

PARAMETERS: x TYPE i, y TYPE i.

DATA: BEGIN OF tb OCCURS 0,

p TYPE i,

m TYPE i,

END OF tb.

DATA: wa LIKE LINE OF tb.

wa-p = x.

wa-m = y.

APPEND wa TO tb.

*What do I have to write here??

LOOP AT tb INTO wa.

at new ????

ENDLOOP.*

Read only

0 Likes
1,167

hi

REPORT zsumtest.

PARAMETERS: x TYPE i, y TYPE i.

DATA: BEGIN OF tb OCCURS 0,

p TYPE i,

m TYPE i,

END OF tb.

DATA: wa LIKE LINE OF tb.

data : lp type i.

wa-p = x.

wa-m = y.

APPEND wa TO tb.

lp = 0.

LOOP AT tb INTO wa.

at new p.

lp = wa-p + wa-m.

endat.

ENDLOOP.

regards

Shiva

Read only

Former Member
0 Likes
1,167

Loop at itab.

at last.

sum. <-- Itab's header will have summed up values ..

endat.

endloop.

Read only

Former Member
0 Likes
1,167

use COLLECT statement in your itab

COLLECT itab.

<REMOVED BY MODERATOR>

VIVEK

Edited by: Alvaro Tejada Galindo on Feb 27, 2008 3:09 PM

Read only

Former Member
0 Likes
1,167

Hi,

u can use COLLECT statement.

Regards,

Ramya