If you want a select on each record in an internal table in SAP you can avoid programming a loop with a single select using the following statment. This solution will increase performance radically.
Remember: database access is time consuming.
The code has been tested and edited by user Ben Meijs to ensure accuracy.
Report zzatip. Data: begin of data_package occurs 0, Matnr like mara-matnr, end of data_package. types: begin of ty_mara, matnr like mara-matnr, matkl like mara-matkl, end of ty_mara. data: wa_mara type ty_mara. data: ta_mara type sorted table of ty_mara with non-unique key matnr. * First, data must be available in the table DATA_PACKAGE * Then the corresponding materialdata from MARA must be read SELECT MATNR MATKL INTO TABLE TA_MARA FROM MARA FOR ALL ENTRIES IN DATA_PACKAGE WHERE MATNR = DATA_PACKAGE-MATNR. * With the following loop you can combine the records. LOOP AT DATA_PACKAGE. LOOP AT TA_MARA into wa_mara WHERE MATNR = DATA_PACKAGE-MATNR. . ..... ENDLOOP. ENDLOOP.
This was first published in August 2002