Skip to Content
0
Former Member
Apr 17, 2008 at 12:15 PM

How to avoid select with in a loop.

36 Views

Hi friends,

can any tell how to avoid the select with in a loop for the following code, since it badly effecting my performance. if possible with code

SELECT matnr werks

FROM marc

INTO TABLE it_marc

FOR ALL ENTRIES IN it_ausp_1

WHERE matnr = it_ausp_1-objek AND

werks = p_werks

AND mmsta LE 60.

SORT it_marc BY matnr.

CLEAR wa_ausp_1.

CLEAR wa_tabix.

LOOP AT it_ausp_1 INTO wa_ausp_1.

wa_tabix = sy-tabix.

READ TABLE it_marc INTO wa_marc WITH

KEY matnr = wa_ausp_1-objek

BINARY SEARCH.

IF sy-subrc EQ 0.

ELSE.

DELETE it_ausp_1 INDEX wa_tabix.

ENDIF.

ENDLOOP. " LOOP AT it_ausp_1 INTO wa_ausp_1.

APPEND LINES OF it_ausp_1 TO it_tal.

IF it_tal[] IS NOT INITIAL.

LOOP AT t_plan_order INTO fs_plan_order.

SELECT r~rsnum

r~rspos

r~matnr

r~nomng

r~meins

r~plnum

r~bdter

r~ewahr

r~alprf

r~posnr

r~baugr

m~dispo

INTO TABLE t_resb

FROM resb AS r

INNER JOIN marc AS m

ON rbaugr = mmatnr

AND rwerks = mwerks

FOR ALL ENTRIES IN it_tal

WHERE r~rsnum = fs_plan_order-rsnum

AND r~matnr = it_tal-objek

AND r~xloek = ' '

AND r~werks = p_werks.

APPEND LINES OF t_resb TO t_tacl.

ENDLOOP.