B 테이블에 구분이 있어야 말이 되겠는데요? 구분이 없네요?
WITH t_a AS ( SELECT '2020' yyyy, 1 seq FROM dual UNION ALL SELECT '2020', 2 FROM dual ) , t_b AS ( SELECT '2020' yyyy, 1 seq, '변경전' gb, 100 amt FROM dual UNION ALL SELECT '2020', 1, '변경후', 200 FROM dual ) SELECT a.yyyy , a.seq , b.gb , NVL(b.amt, 0) amt FROM t_a a LEFT OUTER JOIN t_b b PARTITION BY (b.gb) ON a.yyyy = b.yyyy AND a.seq = b.seq ORDER BY yyyy, seq, gb ;