인터널 테이블에 담겨 있는 데이터와 관련된 것만 데이터베이스 테이블에 가져오려면 FOR ALL ENTRIES IN
기능을 사용한다.
SELECT f1 f2 f3 ... fn
INTO CORRESPONDING FIELDS OF <wa>
FROM <dbtab>
FOR ALL ENDTRIES IN <itab>
WHERE <cond>.
WHERE의 <cond>
연산자를 이용하여 인터널 테이블의 각 레코드와 데이터베이스의 레코드와 비교한다.
<cond>
에서 비교되는 각 컬럼은 비교되는 데이터베이스의 칼럼 타입 및 크기와 일치해야한다.
<itab>
이 비어있으면 FOR ALL ENTRIES IN은 무시되고 모든 레코드가 읽혀진다.
<itab>
의 필드는 LIKE BETWEEN IN과 같은 연산자와 함께 사용할 수 없다.
DATA : BEGIN OF itab_zhmstr OCCURS 0.
INCLUDE STRUCTURE zhmstr.
DATA : END OF itab_zhmstr.
DATA : BEGIN OF itab_zhdet OCCURS 0.
INCLUDE STRUCTURE zhdet.
DATA : END OF itab_zhdet.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE itab_zhmstr
FROM zhmstr
WHERE gender = 'F'
SELECT zhdet~idno zhdet~phone zhdet~blood1 zhdet~region
INTO CORRESPONDING FIELD OF TABLE itab_zhdet
FROM zhdet
FOR ALL ENTRIES IN itab_zhmstr
WHERE zhdet~idno = itab_zhmstr-idno.