728x90
반응형
WITH months AS (
-- Generate the list of months from 01 to 12 for the given year (e.g., 2024)
SELECT LPAD(LEVEL, 2, '0') AS month
FROM dual
CONNECT BY LEVEL <= 12
)
SELECT
...
, #{param.baseYr} || ms.month AS MROFS_YM -- Use the generated months from 01 to 12
, NVL(M.PRC, 0) AS PRC
...
FROM months ms
LEFT JOIN ${dbId}.T_PRICE M
ON M.BASE_YM = #{param.baseYr} || ms.month -- Join based on the generated months for the given year
...
T_PRICE 테이블에 1월 ~ 12월 까지의 데이터가 전부 있는게 아니여도 1월 ~ 12월 리스트 조회된다.
PRC컬럼에 값이 없어도 0으로 조회된다.
728x90
반응형
'DB' 카테고리의 다른 글
[DB][MySQL] 날짜+시간 문자열과 날짜문자열 비교하기 (0) | 2024.10.23 |
---|---|
[DB][Oracle] 날짜+시간 문자열과 날짜문자열 비교하기 (0) | 2024.10.22 |
[DB][Oracle] 여러행 삽입하기 (0) | 2024.09.29 |
[DB][Oracle] 날짜형식으로 TIMESTAMP 비교하는 방법 (0) | 2024.09.06 |
[DB][Oracle] 컬럼추가, 원하는 위치에 컬럼추가하기 (1) | 2024.09.05 |