안녕하세요. 오라클 조인관련해서 질문드립니다.
| 테이블1 | 테이블2 | |||||
| 성명 | 항목1 | 항목1 금액 | 성명 | 항목2 | 항목2 금액 | |
| 이름1 | A011 | 10 | 이름1 | D01 | 30 | |
| 이름1 | A02 | 20 | 이름1 | D02 | 40 | |
| 이름1 | D03 | 50 | ||||
| 이름1 | D04 | 60 |
위의 데이타를 아래와같이 조회하고 싶은데 잘 생각이 안나네요
| 결과 | ||||
| 성명 | 항목1 | 항목1 금액 | 항목2 | 항목2 금액 |
| 이름1 | A011 | 10 | D01 | 30 |
| 이름1 | A02 | 20 | D02 | 40 |
| 이름1 | D03 | 50 | ||
| 이름1 | D04 | 60 |
도움 부탁드리겠습니다.
WITH t1 AS
(
SELECT '이름1' nm, 'A011' cd, 10 amt FROM dual
UNION ALL SELECT '이름1', 'A02', 20 FROM dual
)
, t2 AS
(
SELECT '이름1' nm, 'D01' cd, 30 amt FROM dual
UNION ALL SELECT '이름1', 'D02', 40 FROM dual
UNION ALL SELECT '이름1', 'D03', 50 FROM dual
UNION ALL SELECT '이름1', 'D04', 60 FROM dual
)
SELECT nm
, rn
, MIN(cd1 ) cd1
, MIN(amt1) amt1
, MIN(cd2 ) cd2
, MIN(amt2) amt2
FROM (SELECT ROW_NUMBER() OVER(PARTITION BY nm ORDER BY cd) rn
, nm
, cd cd1
, amt amt1
, null cd2
, null amt2
FROM t1
UNION ALL
SELECT ROW_NUMBER() OVER(PARTITION BY nm ORDER BY cd) rn
, nm
, null cd1
, null amt1
, cd cd2
, amt amt2
FROM t2
)
GROUP BY nm, rn
ORDER BY nm, rn
;
많은 도움되었습니다.
감사합니다!
좋은하루되세요!