소스: sql-src/work_09_migration_check/01_reconcile.sql, 02_convert_check.sql.
구 시스템 스테이징 표 old_cust(id, name, join_ymd 문자 8자리, amt 문자, grade)에 12행, 새 표 new_cust(id, name, join_dt DATE, amt INT, grade 는 코드 표 FK)에 9행이 있습니다. 코드 표 grade_code 에는 G1, G2, G3 세 개가 있습니다.
구 시스템에는 일부러 문제를 넣었습니다. 5 번은 '20240231' 이라는 존재하지 않는 날짜, 6 번은 금액 'N/A', 7 번은 코드 표에 없는 G9, 12 번은 이름이 너무 깁니다. 이 네 행은 이관되지 않았습니다. 신 표에는 구에 없는 99 번이 있고 3, 4, 9, 10, 11 번은 값이 다릅니다.
양쪽 집계를 UNION ALL 로 두 행에 붙이면 한눈에 비교됩니다. 구의 금액은 문자이므로 숫자 모양인 행만 CAST 해서 더합니다. 날짜는 신 쪽을 8자리 문자로 바꿔 구와 같은 형태로 맞춥니다.
SELECT
'old' AS src
, COUNT(*) AS cnt
, SUM(CASE WHEN REGEXP_LIKE(amt, '^[0-9]+