해당열 이용하여 -7일, -365일 날짜 구하는 쿼리 문의 드립니다. 0 1 619

by 파갈제잉 [SQL Query] [2018.09.06 08:40:11]


 

안녕하세요, 오라클 서브쿼리상 쿼리짤려고 하는데 문의사항이 문의드립니다.

dim_date의 cd_ymd(varchar) 기준으로 -7일과 -365을 구할려고 합니다.

아래와 같이 서브쿼리로 구현해봤는데 잘안되서 혹시 방법알 수 있을까요?

CD_YMD EX7_CD_YMD EX365_CD_YMD
20180905 20180829 20170905

SELECT CD_YMD,
(SELECT B.CD_YMD FROM DIM_DATE B
WHERE A.CD_YMD = B.CD_YMD
AND B.CD_YMD - 7) EX7_CD_YMD
),
(SELECT B.CD_YMD FROM DIM_DATE B
WHERE A.CD_YMD = B.CD_YMD
AND B.CD_YMD - 365) EX365_CD_YMD
)
from dim_date A


 

by 마농 [2018.09.06 08:51:49]

조인 조건을 잘 못 줬구요. ( b.cd_ymd = a.cd_ymd - 7 ) 이런식이 되야 합니다.
그런데, 조인이나 서브쿼리 필요 없고 빼기 연산만 하면 됩니다.
또한, 그냥 빼면 안되고 날짜로 바꿔서 빼야 합니다.
 

-- Oracle --
SELECT cd_ymd
     , TO_CHAR(TO_DATE(cd_ymd, 'yyyymmdd') -   7, 'yyyymmdd') ex7_cd_ymd
     , TO_CHAR(TO_DATE(cd_ymd, 'yyyymmdd') - 365, 'yyyymmdd') ex365_cd_ymd
  FROM dim_date
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입