SAP ABAP FOR ALL ENTRIES 구문

Jubami·2023년 2월 6일
0

SAP 

목록 보기
3/13
post-thumbnail
SELECT ... FOR ALL ENTRIES  IN <itab> WHERE <cond>
  • FOR ALL ENTRIES 구문은 인터널 테이블의 서브 쿼리와 유사한 기능을 수행합니다. FOR ALL ENTRIES 구문을 사용할 때 WHERE 구문의 조건은 itab에 존재하는 필드만 가능합니다.

FOR ALL ENTRIES 구문 사용 시 주의점

  • itab의 칼럼과 비교 대상 테이블의 칼럼 타입이 같아야 합니다.

  • LIKE, BETWEEN, IN과 같은 비교 구문은 사용할 수 없습니다.

  • itab의 중복된 값은 하나만 남습니다(Unique Key 기준)

  • itab가 NULL이면 모든 데이터를 읽습니다.

  • itab의 수가 많으면 LOOP 수가 증가하게 되므로 쿼리 속도가 느려집니다.

DATA  gt_spfli TYPE TABLE OF spfli.

DATA  gt_sflight TYPE TABLE OF sflight.

DATA  gs_wa TYPE sflight.


SELECT * FROM spfli INTO TABLE gt_spfli.


SELECT * FROM sflight

  INTO CORRESPONDING FIELDS OF TABLE gt_sflight

  FOR ALL ENTRIES IN  gt_spfli

  WHERE carrid  = gt_spfli-carrid AND connid = gt_spfli-connid.


LOOP AT gt_sflight INTO gs_wa.

  WRITE : / gs_wa-carrid, gs_wa-connid.

ENDLOOP.

gs_wa(sflight)에 일치하는 gt_sflight의 carrid와 connid가 담긴다.


2023.08.18 Update

  • 주로 local에 옮겨담아서 사용함
  • 각종 조건에 의해 담긴 lt_Temp ITAB의 필드를 이용해 일치하는 데이터를 가져올 수 있따.
  • 물론 FROM 절에 JOIN과 함께 사용 가능.
profile
LV.1 아밥퍼

0개의 댓글