아래 쿼리 보시면 A 테이블에 연필이 100개가 있다는 데이터가있습니다. B테이블에는 연필 과 지우개 라는 데이터가있습니다. 쿼리를 돌리면 연필 , 100개 가 나오지요
실행하였을때 연필 100개 지우개 0개 가 나오게 하려면 어떻게해야하나요? (+) 요고 부치면 될줄알앗는데안되네요
고수님들의 답변 기다립니다. ㅠㅠ
SELECT A.NM, A.CNT
FROM(
SELECT '연필' AS NM, 100 AS CNT FROM DUAL
) A,
(
SELECT '연필' AS NM FROM DUAL
UNION ALL
SELECT '지우개' AS NM FROM DUAL
) B
WHERE A.NM = B.NM
by 농부지기
[2014.04.16 16:40:53]
OUTER JOIN은 전체(연필, 지우개)가 존재 하는 테이블의 반대쪽 테이블 (+) 를 붙여야 되네요. 즉, 아래처럼 , 코드테이블이 있구요. 코드별 실적이 테이블 있을 경우
코드별 실적을 구하는 SQL 문장이네요. 이럴경우 모든 코드가 다 조회 되어야 된다면 코드테이블이 아닌 실적 테이블에 (+)를 하는 거죠.
SELECT B.NM, NVL(A.CNT, 0)
FROM(
SELECT '연필' AS NM, 100 AS CNT FROM DUAL
) A,
(
SELECT '연필' AS NM FROM DUAL
UNION ALL
SELECT '지우개' AS NM FROM DUAL
) B
WHERE A.NM(+) = B.NM ;
by 클라나드
[2014.04.16 17:20:46]
감사합니다.
덕분에 고민을 많이 하던문제를 해결하였으며
모르던 공부도 하게되었습니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.