아래와 같은 상황에서 더 나은 방법이 무엇인지 궁금하여 질문 드립니다.
db는 오라클, 월정산 시스템이고 프로시져 실행 시점에 상관없이 같은 결과를 출력 해야 합니다.
그래서 로직 변경시 기존에는
insert into 결과테이블 select case when 정산월 <= 201812 then sal + 1000 else sal + 2000 end as bonus from t1 where yyyymm = 정산월;
이런식으로 정산월을 기준으로 case 문을 사용하여 처리했었는데 문제점이
변경이 일어날수록 점점 쿼리가 복잡해지고, 실제쿼리는 예시보다 case 로 처리해야되는 부분들이 많아서 더 좋은 방법이 없을까 생각해 봤습니다.
insert into 결과테이블 select sal + 1000 as bonus from t1 where yyyymm = 정산월 and 정산월 <= 201812 ; insert into 결과테이블 select sal + 2000 as bonus from t1 where yyyymm = 정산월 and 정산월 >= 201901 ;
이렇게 나누는것,
그리고 버전별로 프로시져를 만들어서 해당 정산월에 맞는 프로시져를 호출 하는것.
이정도 생각 해봤는데 둘 다 썩 좋은 방법은 아닌것 같아 질문 드립니다.
어떤식으로 처리하는게 좋은 방법일까요?