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

Adding similar data in internal table

Former Member
0 Likes
1,156

Hi all,

This is the data in internal table.

state1 state2 no. matnr amt

-


karnataka tamilnadu A001 item1 200

karnatak tamilnadu A001 item2 400

karnatak tamilnadu A001 item3 300

karnataka tamilnadu B001 item5 200

karnataka tamilnadu C002 item1 300

I want to add all the amount where no. is equal and want to display only first matnr..

state1 state2 no. mater amt

-


karnataka tamilnadu A001 item1 900

karnataka tamilnadu B001 item5 200

karnataka tamilnadu C002 item1 300

Please help me with logic.

Thanks and regards,

sr

Hi all,

This is the data in internal table.

state1 state2 no. matnr amt

-


karnataka tamilnadu A001 item1 200

karnatak tamilnadu A001 item2 400

karnatak tamilnadu A001 item3 300

karnataka tamilnadu B001 item5 200

karnataka tamilnadu C002 item1 300

I want to add all the amount where no. is equal and want to display only first matnr..

state1 state2 no. mater amt

-


karnataka tamilnadu A001 item1 900

karnataka tamilnadu B001 item5 200

karnataka tamilnadu C002 item1 300

Please help me with logic.

Thanks and regards,

sr

7 REPLIES 7
Read only

Former Member
0 Likes
1,074

research ABAP keyword COLLECT...put your values into a Sorted Table (SAP Best Practice)...add a bit of logic to retain only the first value in each group.

Read only

Former Member
0 Likes
1,074

Hi,

Sort your internal table by state 1, state 2 and no. ascending and using the at new and endat statement inside a loop you can

add up the amount.

Hope this helps.

Regards,

Sagar

Read only

Sridharnekkanti
Active Participant
0 Likes
1,074

First sort the internal table by matnr wise.

after that use the control break statement at end of.

LOOP AT <Internal table name>.

..................

AT END OF <Material field>.

SUM.

.................

...................

ENDAT.

................

ENDLOOP.

Read only

0 Likes
1,074

Dear srinivas,

May be the below code will useful.

If your's problem solve with this code please give reply.

REPORT zsr_test .

TYPES:BEGIN OF ty_tab,

state1(20) TYPE c,

state2(20) TYPE c,

no(10) TYPE c,

matnr(10) TYPE c,

amt(10) TYPE c,

END OF ty_tab.

DATA:it_tab TYPE STANDARD TABLE OF ty_tab,

it_tab1 TYPE STANDARD TABLE OF ty_tab,

wa_tab TYPE ty_tab.

DATA:v_matnr(10) TYPE c,

v_amt(10) TYPE c.

wa_tab-state1 = 'karnataka'.

wa_tab-state2 = 'tamilnadu'.

wa_tab-no = 'A001'.

wa_tab-matnr = 'item1'.

wa_tab-amt = '200'.

APPEND wa_tab TO it_tab.

CLEAR:wa_tab.

wa_tab-state1 = 'karnataka'.

wa_tab-state2 = 'tamilnadu'.

wa_tab-no = 'A001'.

wa_tab-matnr = 'item2'.

wa_tab-amt = '400'.

APPEND wa_tab TO it_tab.

CLEAR:wa_tab.

wa_tab-state1 = 'karnataka'.

wa_tab-state2 = 'tamilnadu'.

wa_tab-no = 'A001'.

wa_tab-matnr = 'item3'.

wa_tab-amt = '300'.

APPEND wa_tab TO it_tab.

CLEAR:wa_tab.

wa_tab-state1 = 'karnataka'.

wa_tab-state2 = 'tamilnadu'.

wa_tab-no = 'B001'.

wa_tab-matnr = 'item5'.

wa_tab-amt = '200'.

APPEND wa_tab TO it_tab.

CLEAR:wa_tab.

wa_tab-state1 = 'karnataka'.

wa_tab-state2 = 'tamilnadu'.

wa_tab-no = 'C002'.

wa_tab-matnr = 'item1'.

wa_tab-amt = '300'.

APPEND wa_tab TO it_tab.

CLEAR:wa_tab.

SORT it_tab BY no.

LOOP AT it_tab INTO wa_tab.

v_matnr = wa_tab-matnr.

v_amt = v_amt + wa_tab-amt.

AT END OF no.

wa_tab-matnr = v_matnr.

wa_tab-amt = v_amt.

APPEND wa_tab TO it_tab1.

CLEAR:v_amt,v_matnr.

ENDAT.

ENDLOOP.

Regards

D.Srinivas.

Read only

syed_ibrahim5
Active Participant
0 Likes
1,074

hi,

the below code might help you.


ITAB-STATE1 = 'KARNATAKA'.
ITAB-STATE2 = 'TAMILNADU'.
ITAB-NO = 'A001'.
ITAB-MATNR = 'ITEM1'.
ITAB-AMT = 300.
APPEND ITAB.


ITAB-STATE1 = 'KARNATAKA'.
ITAB-STATE2 = 'TAMILNADU'.
ITAB-NO = 'A001'.
ITAB-MATNR = 'ITEM3'.
ITAB-AMT = 330.
APPEND ITAB.


ITAB-STATE1 = 'KARNATAKA'.
ITAB-STATE2 = 'TAMILNADU'.
ITAB-NO = 'A001'.
ITAB-MATNR = 'ITEM8'.
ITAB-AMT = 600.
APPEND ITAB.


ITAB-STATE1 = 'KARNATAKA'.
ITAB-STATE2 = 'TAMILNADU'.
ITAB-NO = 'B001'.
ITAB-MATNR = 'ITEM4'.
ITAB-AMT = 300.
APPEND ITAB.


ITAB-STATE1 = 'KARNATAKA'.
ITAB-STATE2 = 'TAMILNADU'.
ITAB-NO = 'C001'.
ITAB-MATNR = 'ITEM6'.
ITAB-AMT = 700.
APPEND ITAB.


LOOP AT ITAB.

ITAB1-STATE1 = ITAB-STATE1.
ITAB1-STATE2 = ITAB-STATE2.
ITAB1-NO = ITAB-NO.
ITAB1-AMT = ITAB-AMT.

COLLECT ITAB1.

ENDLOOP.


LOOP AT ITAB1.

      READ TABLE ITAB WITH KEY STATE1 = ITAB1-STATE1 NO = ITAB1-NO.

            IF SY-SUBRC = '0'.

                ITAB1-MATNR = ITAB-MATNR.

             ENDIF.

                   MODIFY ITAB1.


WRITE : / ITAB1-STATE1 , ITAB1-STATE2 , ITAB1-NO , ITAB1-MATNR ,  ITAB1-AMT.
ENDLOOP.

with regards,

syed

Read only

Former Member
0 Likes
1,074

hi dear ,

You can use the following code .

If it provide your solution please give me the points.

TYPES: BEGIN OF S_struc,

STATE1(15) TYPE c,

STATE2(15) TYPE c,

NO(5) TYPE c,

MATNR(5) TYPE c,

AMT TYPE i,

END OF S_struc.

data: ITAB TYPE STANDARD TABLE OF S_struc,

WA TYPE S_struc.

WA-STATE1 = 'KARNATAKA'.

WA-STATE2 = 'TAMILNADU'.

WA-NO = 'A001'.

WA-MATNR = 'ITEM1'.

WA-AMT = 200.

APPEND WA TO ITAB.

CLEAR WA.

WA-STATE1 = 'KARNATAKA'.

WA-STATE2 = 'TAMILNADU'.

WA-NO = 'A001'.

WA-MATNR = 'ITEM2'.

WA-AMT = 200.

APPEND WA TO ITAB.

CLEAR WA.

WA-STATE1 = 'KARNATAKA'.

WA-STATE2 = 'TAMILNADU'.

WA-NO = 'A001'.

WA-MATNR = 'ITEM3'.

WA-AMT = 300.

APPEND WA TO ITAB.

CLEAR WA.

WA-STATE1 = 'KARNATAKA'.

WA-STATE2 = 'TAMILNADU'.

WA-NO = 'B005'.

WA-MATNR = 'ITEM5'.

WA-AMT = 200.

APPEND WA TO ITAB.

CLEAR WA.

WA-STATE1 = 'KARNATAKA'.

WA-STATE2 = 'TAMILNADU'.

WA-NO = 'C001'.

WA-MATNR = 'ITEM1'.

WA-AMT = 300.

APPEND WA TO ITAB.

CLEAR WA.

SORT ITAB by NO MATNR.

LOOP AT ITAB INTO WA.

AT END OF NO.

SUM.

WRITE 😕 WA-STATE1, 15 WA-STATE2,25 WA-NO,35 WA-MATNR , 40 WA-AMT.

ENDAT.

ENDLOOP.

Read only

Former Member
0 Likes
1,074

Thanks for ur replies.

Solved....own logic.