select 문에서 inner join , out join 관한 질문..

EX

PARAMETERS: p_cityfr TYPE spfli-cityfrom,
            p_cityto TYPE spfli-cityto.

DATA: BEGIN OF wa,
         fldate TYPE sflight-fldate,
         carrname TYPE scarr-carrname,
         connid   TYPE spfli-connid,
       END OF wa.

DATA itab LIKE SORTED TABLE OF wa
               WITH UNIQUE KEY fldate carrname connid.  // 여기까진 이해
//

SELECT c~carrname p~connid f~fldate
       INTO CORRESPONDING FIELDS OF TABLE itab
       FROM ( ( scarr AS c
         INNER JOIN spfli AS p ON p~carrid   = c~carrid
                              AND p~cityfrom = p_cityfr
                              AND p~cityto   = p_cityto )
         INNER JOIN sflight AS f ON f~carrid = p~carrid
                                AND f~connid = p~connid ).

//  이부분을 도통 이해 못하겠습니다.  알기 쉽게 나온 예제나 결과물도 없구요. ㅜㅜ
     ‘c’ ,’p’,’f’,’~’ 이런 구문도 이해 못하겠습니다.            

LOOP AT itab INTO wa.
  WRITE: / wa-fldate, wa-carrname, wa-connid.
ENDLOOP.

* 급 초보보다 보니  개념잡는문제에서 많이 막혀 버리네요 ㅠㅠ
   답글 부탁 드릴께요..

// 답글달수 있는 그날까지 화이링! .//


1 Comment

avatar

조인시 테이블이 여러개가 존재할때는 별칭을 이용합니다..
=> 테이블명 AS 별칭
예를 들어 SCARR AS C라고 하면 C가 별칭이 되겠죠?
해당 테이블명을 그대로 사용해도 아무런 문제가 없습니다..
하지만 따로 별칭을 주는 이유는 여러 테이블을 조인할 경우 만약 별칭을 사용하지 않을 시..
동일한 필드명이 존재할 경우엔 에러가 발생하게 될 것이기 때문입니다….
테이블명을 그대로 사용해서 별칭~필드명 대신 테이블명~필드명을 해도 되지만..
그렇게 되면 코딩이 더욱 길어지고, 한눈에 쿼리문이 잘 들어오지 않겠죠??

명확한 답변은 아니지만.. 도움이 되었음 합니다..
이제 처음 시작하셨다면.. 로컬에다가 여러가지 테스트 작업을 해 보시고..
열심히 F1키를 눌러 보시기 바랍니다..
그럼.. 열공 하시기 바랍니다..

Leave a Reply