SELECT a~abvno c~zmtext a~trdat a~zcmscode b~zpostflg a~dmbtr
a~zchecknum a~zbrangb a~zfbtim a~zbilledt
a~zbilltdt b~belnr a~wstat a~zsndname b~stkzn a~zfbdat a~zchbankn
a~zmgbankn b~zsndbran a~zsnddat a~bankc a~zcmsuser a~zrequser
a~upflg a~trzet a~zopt2 a~zopt1 b~budat a~abvcd a~jbcod a~zsndnum
a~zsign a~zremamt
INTO CORRESPONDING FIELDS OF TABLE it_grid_list
FROM zfitfb01 AS a
left outer JOIN zfitfb02 AS b
ON a~bukrs = b~bukrs
AND a~vendc = b~vendc
AND a~trdat = b~trdat
AND a~bankc = b~bankc
AND a~abvcd = b~abvcd
AND a~jbcod = b~jbcod
AND a~abvno = b~abvno
left outer JOIN knvv AS k
ON b~kunnr = k~kunnr -> error
AND k~vtweg = '10'
AND k~spart = '00'
left outer JOIN zfitfb03 AS c
ON c~bukrs = a~bukrs
AND c~abvcd = a~abvcd
AND c~jbcod = a~jbcod
AND c~zmast = a~zmast
WHERE a~bukrs = p_bukrs
AND a~zsnddat IN s_snddat "통지전송일
AND b~kunnr IN s_kunnr -> error
AND k~vkbur IN s_vkbur -> error
AND k~vkgrp IN s_vkgrp -> error
AND b~zpostflg IN s_zpostf. -> error
쿼리가 위와 같습니다.
그런데 inner 조인과 달리 left 조인은 조건이 달라야 할것 같은데 아래와 같은 에러가 생기네요.
no fileds from the right-hand table of a left outer join may appear in the WHERE condition
어떻게 풀어야죠?
댓글 4
-
남군
2009.07.02 19:39
-
아밥고지를 찾아서
2009.07.02 19:53
AND a~zsnddat IN s_snddat "통지전송일
처럼 selection-option도 사용이 되는데요..
FROM ( ( ( zfitfb01 AS a
left outer JOIN zfitfb02 AS b
ON a~bukrs = b~bukrs
AND a~vendc = b~vendc
AND a~trdat = b~trdat
AND a~bankc = b~bankc
AND a~abvcd = b~abvcd
AND a~jbcod = b~jbcod
AND a~abvno = b~abvno ) as z ------
left outer JOIN knvv AS k
ON k~kunnr = z~kunnr ------- 이 두부분을 수정해도 이와 같이 수정해도 안되네요
AND k~vtweg = '10'
AND k~spart = '00' )
순차적으로 A B 레프트 조인하고 그것에서 K랑 레프트 조인 이런식으로 가고 싶은데요.. 어떻하죠
left 조인은 on에서는 제일 왼쪽인 A~필드 하고 해당 조인 테이블 하고만 비교 되는것 같고 where절에서는 A~필드만 사용되는것 같군요.
-
홈런
2009.07.02 19:55
LEFT-OUTER JOIN은 LEFT테이블을 기준으로 존재하는 데이터를 조회한다.
RIGHT테이블에 데이터가 존재하지 않더라도 LEFT 테이블에만 존재하면된다.
OUTER JOIN은 LEFT OUTER JOIN만 가능하다.
---책 내용 발췌
즉, JOIN의 대상이 되는 RIGHT쪽에는 WHERE 절을 줄 수 없게되겠네요..맞는지..
-
아밥고지를 찾아서
2009.07.02 23:45
홈런 님 홈런 답입니다. 감사 드려요 결국에는 안되는거네요.ㅋ
left join시 where 절에 select-options 조건을 사용 못하는 걸로 알고 있습니다.