Loop and select in one statement

If you want a select on each record in an internal table, avoid doing a loop with a single select using this statment.

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

Dig deeper on SAP ABAP

Pro+

Features

Enjoy the benefits of Pro+ membership, learn more and join.

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchManufacturingERP

SearchOracle

SearchDataManagement

SearchAWS

SearchBusinessAnalytics

SearchCRM

SearchContentManagement

SearchFinancialApplications

Close