안녕하세요 오늘은 FOR ALL ENTRIES IN에 대해 알아보겠습니다.
[FOR ALL ENTRIES IN의 이해]
- FOR ALL ENTRIES IN은 조인이랑 같은 개념입니다.
- 정확하게는 Abap Dictionary(se11)에 존재하는 테이블과 우리가 만든 인터널 테이블을 조인해주는 역할입니다.
[FOR ALL ENTRIES IN의 사용이유]
SAP ECC 버전에서는 쿼리를 사용하여 인터널 테이블을 조인하는게 불가능합니다.
그래서 인터널 테이블 조인과 비슷한 역할을 하는 FOR ALL ENTRIES IN을 사용하는 것입니다.
[FOR ALL ENTRIES IN 예제]
[FOR ALL ENTRIES IN 로직 설명]
이번 예제는
1. LT_SFLIGHT에 담긴 데이터를 기준으로
2. SPFLI테이블에서 데이터를 찾되
3. LT_SFLIGHT 테이블의 CARRID컬럼의 값들과 CONNID 컬럼의 값들이 일치하는 것만
4. LT_SPFLI 인터널 테이블에 담아줄 것입니다.
먼저 SFLIGHT에서 데이터 20개를 가져오고 키 값을 기준으로 오름차순으로 정렬을 하였습니다.
LT_SFLIGHT 인터널 테이블에 데이터가 어떻게 들어와있는지 볼까요??
CARRID 컬럼엔 AA와 AZ가 , CONNID에는 0017, 0064, 0555 값이 들어와있네요.
이제 LT_SFLIGHT에 담긴 CARRID, CONNID컬럼의 값들과 일치하는 값을 SPFLI 테이블에서 찾아보겠습니다.
FOR ALL ENTRIES IN은 LOOP문과 SELECT문을 동시에 사용합니다.
위 로직을 해석하자면
1. LT_SFLIGHT에 담긴 데이터 갯수만큼 LOOP를 돌며
2. LT_SFLIGHT에 담긴 CARRID, CONNID가 일치 하는 값을 SPFLI 테이블에서 찾아
3. LT_SPFLI 인터널 테이블에 담아주고
4. LT_SPFLI에 담긴 인터널 테이블 데이터의 정렬을 SPFLI 테이블의 기본 키 기준으로 한다.
즉, 쿼리에서 사용하는 ORDER BY(정렬) 구문을 사용할 수 있다는 것 자체가 쿼리죠??
(결과)
LT_SFLIGHT에 담긴 CARRID, CONNID 값으로 SPFLI 테이블에 일치하는 건 위 3개의 값이네요.
'- SAP ABAP 기초부터 시작하기' 카테고리의 다른 글
SAP ABAP 기초 4-5) APPEND 구문 이해하기 (0) | 2022.12.09 |
---|---|
SAP ABAP 기초 4-4) MOVE-CORRESPONDING 이해하기 (0) | 2022.12.09 |
SAP ABAP 기초 4-2 ) 데이터 가공 2 - READ TABLE에 대한 이해 (0) | 2022.12.02 |
SAP ABAP 기초 4-1 ) 데이터 가공 1 - LOOP에 대한 이해 (0) | 2022.11.30 |
SAP ABAP 기초 3-6 ) 조인(JOIN) - LEFT OUTER JOIN (0) | 2022.11.24 |