POSTGRE로 작성중인데
기준일자 = 20240312
=> BASC_YM IN (202401, 202402) / 해당년도 01월부터 기준일자의 전월까지
기준일자 = 20240412
=> BASC_YM IN (202401, 202402, 202403) / 해당년도 01월부터 기준일자의 전월까지
기준일자 = 20240112
=> BASC_YM IN (202412, 202401) / 기준일자가 1월인 경우에만 해당년도 1월과 전월인 12월 포함
WHERE 절에 이런식으로 조건을 하려면 어떻게 해야하나요ㅠㅠ
AND TA.BASC_YM BETWEEN SUBSTR('${BASC_DT}',1,4)||'01'
AND (
CASE WHEN SUBSTR('${BASC_DT}',5,2) = '01' THEN SUBSTR('${BASC_DT}',1,6)
ELSE TO_CHAR(ADD_MONTHS(TO_DATE('${BASC_DT}','YYYYMMSS'),-1),'YYYYMM')
END
)
현재는 이렇게 해놨는데 저러면 1월 조회할때 12월이 안뽑혀서요!!
AND TA.BASC_YM BETWEEN (CASE WHEN SUBSTR('${BASC_DT}',5,2) = '01' THEN TO_CHAR(ADD_MONTHS(TO_DATE('${BASC_DT}','YYYYMMSS'),-1),'YYYYMM') ELSE SUBSTR('${BASC_DT}',1,4)||'01' END) AND (CASE WHEN SUBSTR('${BASC_DT}',5,2) = '01' THEN SUBSTR('${BASC_DT}',1,6) ELSE TO_CHAR(ADD_MONTHS(TO_DATE('${BASC_DT}','YYYYMMSS'),-1),'YYYYMM') END)
between 의 시작 조건을 수정했습니다.