OpenSQL에서 Internal Table을 이용한 JOIN 사용
FOR ALL ENTRIES 대체 (단, 대량의 데이터는 성능 이슈 존재)
ABAP New syntax 의 Open SQL에서 For all entries를 대신해서 Internal Table을 쿼리문에 직접 Join 할 수 있습니다
Inner join, outer join 모두 사용 가능하며 이로 인해 좀더 간단하게 쿼리문 작성이 가능해 졌습니다.
# 사용예시
DATA LT_BSEG TYPE STANDARD TABLE OF BSEG.
SELECT
BUKRS,
BELNR,
GJAHR
FROM BKPF
WHERE GJAHR EQ '2022'
INTO TABLE @DATA(LT_BKPF)
UP TO 10 ROWS.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
* FOR ALL ENTRIES --------------------------------------
SELECT
BUKRS, BELNR, GJAHR, BUZEI
FROM BSEG
FOR ALL ENTRIES IN @LT_BKPF
WHERE BUKRS EQ @LT_BKPF-BUKRS
AND BELNR EQ @LT_BKPF-BELNR
AND GJAHR EQ @LT_BKPF-GJAHR
INTO CORRESPONDING FIELDS OF TABLE @LT_BSEG.
* Internal Table Join ----------------------------------
SELECT
A~BUKRS, A~BELNR, A~GJAHR, A~BUZEI
FROM BSEG AS A
INNER JOIN @LT_BKPF AS B ON A~BUKRS EQ B~BUKRS
AND A~BELNR EQ B~BELNR
AND A~GJAHR EQ B~GJAHR
INTO CORRESPONDING FIELDS OF TABLE @LT_BSEG.
ZCL_SALV_TEST=>DISPLAY( LT_BSEG ).
'ABAP > Syntax' 카테고리의 다른 글
[Syntax] CONV - 형 변환 (0) | 2023.07.19 |
---|---|
[OpenSQL] OpenSQL Expressions (0) | 2023.07.19 |
[Syntax] VALUE - structure 와 internal table에 값 할당 (0) | 2023.07.18 |
[Syntax] COND, SWITCH 문 (SQL의 case문과 유사) (0) | 2023.07.18 |
[Syntax] Internal Table 레코드 수 및 Read table 구문 (0) | 2023.07.18 |
댓글