-- 주문백업 테이블과 주문 테이블에서
-- 제품코드와 주문량의 값이 똑같은 행의 정보를
-- 주문번호,제품코드, 주문수량, 주문일자 항목으로 조회한다.
주문번호 1번부터 10 번까지와 938765 번에서 938776 번까지의 교집합 INTERSECT 결과는
이러하다. 이 5개 행의 제품코드와 주문수량이 위에 있는 원본쿼리와 일치하는 것을 찾는 코드
🟪 첫 번째 방법
SELECT T2.JUNO "주문번호", T1.JECODE "제품코드", T1.JUSU "주문수량", T2.JUDAY "주문일자"
FROM
(
SELECT JECODE, JUSU
FROM TBL_JUMUNBACKUP
INTERSECT
SELECT JECODE, JUSU
FROM TBL_JUMUN
)T1
JOIN
(
SELECT JUNO, JECODE, JUSU, JUDAY
FROM TBL_JUMUNBACKUP
UNION ALL
SELECT JUNO, JECODE, JUSU, JUDAY
FROM TBL_JUMUN
)T2
ON T1.JECODE = T2.JECODE
AND T1.JUSU = T2.JUSU;
--결과
/*
2 와클 10 01/11/01
3 꼬북칩 30 01/11/01
5 홈런볼 50 01/11/03
8 포카칩 40 01/11/13
10 칸쵸 20 01/11/20
938767 와클 10 21/04/01
938768 홈런볼 50 21/04/01
938769 꼬북칩 30 21/04/01
938772 포카칩 40 21/04/01
938774 칸쵸 20 21/04/01
*/
둘을 제품코드와 주문수량이 같음을 기준으로 INNER JOIN 해서 결과를 구한다.
코드블럭이 요롷게 줄이 참 안맞는다 왜이리 말을안듣니
🟪 두 번째 방법
두 번째 방법은 제품코드와 주문수량을 CONCAT으로 연결지어 구하는 방법이다.
SELECT *
FROM
(
SELECT JUNO, JECODE, JUSU, JUDAY
FROM TBL_JUMUNBACKUP
UNION ALL
SELECT JUNO, JECODE, JUSU, JUDAY
FROM TBL_JUMUN
)T
--WHERE JECODE IN ('와클','꼬북칩','홈런볼','포카칩','칸쵸') AND JUSU IN (10,30,50,40,20);
--WHERE JECODE||JUSU IN ('와클10','꼬북칩30', '홈런볼50', '포카칩40', '칸쵸20');
--WHERE CONCAT(JECODE,JUSU) IN ('와클10','꼬북칩30', '홈런볼50', '포카칩40', '칸쵸20');
WHERE CONCAT(JECODE,JUSU) = ANY ('와클10','꼬북칩30', '홈런볼50', '포카칩40', '칸쵸20');
/*
2 와클 10 2001-11-01
3 꼬북칩 30 2001-11-01
5 홈런볼 50 2001-11-03
8 포카칩 40 2001-11-13
10 칸쵸 20 2001-11-20
938767 와클 10 2021-04-01
938768 홈런볼 50 2021-04-01
938769 꼬북칩 30 2021-04-01
938772 포카칩 40 2021-04-01
938774 칸쵸 20 2021-04-01*/
SELECT CONCAT(JECODE,JUSU)
FROM TBL_JUMUNBACKUP
INTERSECT
SELECT CONCAT(JECODE, JUSU)
FROM TBL_JUMUN;
/* ★★★
꼬북칩30
와클10
칸쵸20
포카칩40
홈런볼50
*/
SELECT *
FROM
(
SELECT JUNO, JECODE, JUSU, JUDAY
FROM TBL_JUMUNBACKUP
UNION ALL
SELECT JUNO, JECODE, JUSU, JUDAY
FROM TBL_JUMUN
)T
WHERE CONCAT(JECODE,JUSU) = ANY ( --★★★
SELECT CONCAT(JECODE,JUSU)
FROM TBL_JUMUNBACKUP
INTERSECT
SELECT CONCAT(JECODE, JUSU)
FROM TBL_JUMUN );
/*
2 와클 10 2001-11-01
3 꼬북칩 30 2001-11-01
5 홈런볼 50 2001-11-03
8 포카칩 40 2001-11-13
10 칸쵸 20 2001-11-20
938767 와클 10 2021-04-01
938768 홈런볼 50 2021-04-01
938769 꼬북칩 30 2021-04-01
938772 포카칩 40 2021-04-01
938774 칸쵸 20 2021-04-01
*/
'📚Study Note > ORACLE' 카테고리의 다른 글
[ ORACLE ] 제 2 정규화 제 3 정규화 제 4 정규화 역정규화 (0) | 2021.04.05 |
---|---|
[ ORACLE ] 제 1 정규화 (0) | 2021.04.05 |
[ ORACLE ] JOIN - UNION UNION ALL INTERSECT MINUS (0) | 2021.04.02 |
[ ORACLE ] 92, 99 코드를 활용한 세 개 이상의 테이블 JOIN (0) | 2021.04.02 |
[ ORACLE ] JOIN(조인) Equi join Non Equi join CROSS/INNER/OUTER JOIN 부모자식테이블 SELF JOIN (0) | 2021.04.02 |