Hi,
try something like this.
No need for 2 internal tables .
FORM test05 .
TYPES: BEGIN OF tp_summ_1 .
TYPES: matnr TYPE mseg-matnr .
TYPES: erfmg TYPE mseg-erfmg .
TYPES: END OF tp_summ_1 .
DATA: it_mseg TYPE TABLE OF mseg .
DATA: rg_bwart_1 TYPE RANGE OF mseg-bwart .
APPEND 'IEQZ41' TO rg_bwart_1 .
DATA: rg_bwart_2 TYPE RANGE OF mseg-bwart .
APPEND 'IEQZ42' TO rg_bwart_2 .
SELECT * INTO TABLE it_mseg
FROM mseg
UP TO 10000 ROWS
WHERE
( bwart IN rg_bwart_1 OR
bwart IN rg_bwart_2 ).
FIELD-SYMBOLS: <st_mseg> LIKE LINE OF it_mseg .
DATA: it_summ_1 TYPE TABLE OF tp_summ_1 .
DATA: st_summ_1 LIKE LINE OF it_summ_1 .
LOOP AT it_mseg ASSIGNING <st_mseg> .
st_summ_1-matnr = <st_mseg>-matnr .
IF <st_mseg>-bwart IN rg_bwart_1 .
st_summ_1-erfmg = <st_mseg>-erfmg .
ENDIF .
IF <st_mseg>-bwart IN rg_bwart_2 .
st_summ_1-erfmg = <st_mseg>-erfmg * -1 .
ENDIF .
COLLECT st_summ_1 INTO it_summ_1 .
ENDLOOP.
ENDFORM . "test05
Regards.