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월이 안뽑혀서요!!
1 2 3 4 5 6 7 8 9 | 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 의 시작 조건을 수정했습니다.