内表循环嵌套内表
LOOP AT itab1 INTO wa1.
LOOP AT itab2 INTO wa2 WHERE f1 = wa1-f1
AND f3 = wa1-f3.
“………..
ENDLOOP.
ENDLOOP.
以上的性能是很差的,会做很多无谓的循环。
SORT itab2 BY f1 f3.
LOOP AT itab1 INTO wa1.
READ TABLE itab2 WITH KEY f1 = wa1-f1
f3 = wa1-f3 BINARY SEARCH TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
v_tabix = sy-tabix.
LOOP AT itab2 INTO wa2 FROM v_tabix.
IF wa2-f1 NE wa1-f1 or wa2-f3 NE wa1-f3. EXIT ENDIF.
*processing or records here
ENDLOOP.
ENDIF.
ENDLOOP.
上面的结构设计做了一些调整,虽然还是双循环,但是加了一些跳跃动作,体会之后会大呼奇妙。