SAP/ABAP

[ABAP] FOR ALL ENTRIES IN 인터널 테이블과의 조인

jipgagosipda 2024. 7. 30. 09:37

인터널테이블과의 조인

<FOR ALL ENTRIES IN> = INNER JOIN

 

<구문>

SELECT *
  INTO CORRESPONDING FIELDS OF TABLE Itab
  FROM 셀렉할 Table
   FOR ALL ENTRIES IN 조인할 Itab
 WHERE 필드 EQ 조인할 Itab-필드.

 

- INNER JOINFOR ALL ENTRIES IN으로 쓰이고 ONWHERE로 쓰인다.

- SORT 필요. WHERE조건에 들어갈 필드 기준으로 중복제거할 것

- SELECT 구문 실행 전 중복제거한 ITAB이 INITIAL이 아닐 경우만 SELECT 구문 실행할 것

- ITAB이 INITIAL인 경우로 FOR ALL ENTRIES IN하면 테이블의 모든 레코드를 가지고오게 됨

 


<구문 예시>

데이터 SELECT할 테이블: BKPF

조인할 인터널 테이블: IT_OUT

SELECT한 데이터를 넣어줄 테이블: LT_BSTAT

"it_out에 있는 전표상태값 데이터만 lt_bstat에 select.
  SELECT bstat
    INTO CORRESPONDING FIELDS OF TABLE lt_bstat
    FROM bkpf
    FOR ALL ENTRIES IN it_out   "it_out 조인.
  WHERE bukrs = it_out-i_bukrs  "조건 1: bukrs = it_out의 i_bukrs.
    AND gjahr = it_out-i_gjahr  "조건 2: gjahr = it_out의 i_gjahr.
    AND belnr = it_out-i_belnr. "조건 3: belnr = it_out의 i_belnr.

 

 

'SAP > ABAP' 카테고리의 다른 글

[ABAP] RFC  (0) 2024.08.09
[ABAP] FIELD-SYMBOL 필드 심볼  (0) 2024.08.05
[ABAP] 날짜 관련 함수  (0) 2024.08.01
[ABAP] MOVE-CORRESPONDING, KEEPING TARGET LINES  (0) 2024.08.01