안녕하세요.갑자기 수정본이 잡혀서 생각이 잘 안나서 고수님들의 도움을 부탁드립니다.
A테이블
| seqno | Date |
| 10 | 20231010 |
| 20 | 20231111 |
B테이블
| seqno | Cnt |
| 10 | 100 |
| 30 | 200 |
결과
조회조건 seqno=10
| seqno | Date | Cnt |
| 10 | 20231010 | 100 |
조회조건 seqno =20
| seqno | date | Cnt |
| 20 | 20231111 |
조회조건 seqno=30
| seqno | Date | Cnt |
| 30 | 200 |
계속 아리송하네요.
부탁드립니다.
WITH t1 AS
(
SELECT 10 seqno, '20231010' dt FROM dual
UNION ALL SELECT 20, '20231111' FROM dual
)
, t2 AS
(
SELECT 10 seqno, 100 cnt FROM dual
UNION ALL SELECT 30, 200 FROM dual
)
SELECT seqno
, MIN(dt) dt
, MIN(cnt) cnt
FROM (SELECT seqno, dt, null cnt FROM t1
UNION ALL
SELECT seqno, null dt, cnt FROM t2
)
WHERE seqno = 30
GROUP BY seqno
;
너무 너무 감사드립니다.
어느 방향으로 할지 감을 잡았습니다.
그런데 하나만 더 물어봐도 될까요?
A, B 테이블을 예시로 질문을 했는데요.
GROUP BY를 하기엔 각 테이블의 컬럼이 각각 50개씩 총 100개을 추출합니다.
혹 GROUP BY말로 혹 다른 방법이 있을까요?
죄송합니다.
WITH t1 AS
(
SELECT 10 seqno, '20231010' dt FROM dual
UNION ALL SELECT 20, '20231111' FROM dual
)
, t2 AS
(
SELECT 10 seqno, 100 cnt FROM dual
UNION ALL SELECT 30, 200 FROM dual
)
SELECT NVL(a.seqno, b.seqno) seqno
, a.dt
, b.cnt
FROM (SELECT * FROM t1 WHERE seqno = :v_seqno) a
FULL OUTER JOIN
(SELECT * FROM t2 WHERE seqno = :v_seqno) b
ON a.seqno = b.seqno
;