2010 Jul 02 3:47 PM
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
2010 Jul 02 3:58 PM
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.
2010 Jul 03 9:05 AM
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
2010 Jul 03 9:44 AM
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.
2010 Jul 03 10:34 AM
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.
2010 Jul 03 11:13 AM
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
2010 Jul 05 11:07 AM
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.
2010 Jul 06 7:57 AM