Hi,
Use a COLLECT statement
Something like this;
REPORT ztest.
TYPES:
BEGIN OF tys_quantity,
matnr TYPE matnr,
lfimg TYPE lfimg,
meins TYPE meins,
END OF tys_quantity,
tyt_quantity TYPE STANDARD TABLE OF tys_quantity,
BEGIN OF tys_units,
matnr TYPE matnr,
meins TYPE meins,
END OF tys_units,
tyt_units TYPE SORTED TABLE OF tys_units WITH UNIQUE KEY matnr.
DATA:
ls_quantity TYPE tys_quantity,
lt_quantity TYPE tyt_quantity,
ls_units TYPE tys_units,
lt_units TYPE tyt_units,
lt_lips TYPE STANDARD TABLE OF lips.
FIELD-SYMBOLS:
<ls_lips> TYPE lips.
SELECT *
FROM lips
INTO TABLE lt_lips
UP TO 100 ROWS.
IF sy-subrc EQ 0.
SELECT matnr meins
INTO TABLE lt_units
FROM mara
FOR ALL ENTRIES IN lt_lips
WHERE matnr EQ lt_lips-matnr.
ENDIF.
LOOP AT lt_lips
ASSIGNING <ls_lips>.
* Convert to base unit before SUM;
READ TABLE lt_units
INTO ls_units
WITH KEY matnr = <ls_lips>-matnr.
IF sy-subrc EQ 0
AND ls_units-meins NE <ls_lips>-meins.
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
i_matnr = <ls_lips>-matnr
i_in_me = <ls_lips>-meins
i_out_me = ls_units-meins
i_menge = <ls_lips>-lfimg
IMPORTING
e_menge = <ls_lips>-lfimg
EXCEPTIONS
error_in_application = 1
error = 2
OTHERS = 3.
ls_quantity-meins = ls_units-meins.
ELSE.
ls_quantity-lfimg = <ls_lips>-lfimg.
ls_quantity-meins = <ls_lips>-meins.
ENDIF.
ls_quantity-matnr = <ls_lips>-matnr.
COLLECT ls_quantity INTO lt_quantity.
ENDLOOP.
Regards,