데이터 추출 쿼리 질문 드립니다. 0 2 2,164

by 웁스 [2012.06.04 17:02:56]


[A 테이블]
A0001, 1
B0001, 2
C0001, 3
[B 테이블]
A0001, 5
D0001, 6
E0001, 7
위의 테이블의 데이터를 다음과 같이 추출하고 싶습니다.
B0001, 2
C0001, 3

추출 조건은 다음과 같습니다.
1. A테이블에 있는 두 번째 숫자 값이 B 테이블에 있는 숫자 값보다 작으면 추출하지 않음
2. A테이블에 있는 첫 번째 값이 B 테이블에 존재하지 않으면 추출

쉬울 듯 하면서도 어렵네요.

답변 부탁드리겠습니다. 

by 마농 [2012.06.04 17:19:23]
WITH a AS
(
SELECT 'A0001' cd, 1 v FROM dual
UNION ALL SELECT 'B0001', 2 FROM dual
UNION ALL SELECT 'C0001', 3 FROM dual
)
, b AS
(
SELECT 'A0001' cd, 5 v FROM dual
UNION ALL SELECT 'D0001', 6 FROM dual
UNION ALL SELECT 'E0001', 7 FROM dual
)
SELECT a.*
  FROM a, b
 WHERE a.cd = b.cd(+)
   AND a.v > NVL(b.v, 0)
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입