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
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
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |