오라클 update문 관련 질문 0 2 1,304

by 대한민국1 [SQL Query] update [2020.11.19 16:37:40]


안녕하세요

코드 적용일자 종료일자
A 2019-11-10 9999-12-31
A 2020-04-18 9999-12-31
A 2020-10-21 9999-12-31

 

위와 같은 값이 존재하는데, 종료일자가 저렇게 잘못들어가버렸어요..

원래는

코드 적용일자 종료일자
A 2019-11-10 2020-04-17
A 2020-04-18 2020-10-20
A 2020-10-21 9999-12-31

 

다음과 같은 형태로 들어가야되는데 잘못 밀어넣어서 데이터가 꼬여버렸습니다..

위의표를 아래의 표와같이 update하는 쿼리를 어떻게해야할지몰라 질문드립니다.. 데이터는 2만건 정도 됩니다...

by 마농 [2020.11.19 17:39:53]
MERGE INTO ttt a
USING
(
SELECT *
  FROM (SELECT cd
             , sdt
             , edt
             , TO_CHAR(TO_DATE(
               LEAD(sdt) OVER(PARTITION BY cd ORDER By sdt)
               , 'yyyy-mm-dd') - 1, 'yyyy-mm-dd') edt_new
          FROM ttt
        )
 WHERE edt != edt_new
) b
ON (a.cd  = b.cd
AND a.sdt = b.sdt)
WHEN MATCHED THEN
UPDATE
   SET edt = b.edt_new
;

 


by 대한민국1 [2020.11.20 11:15:31]

감사합니다 마농님 덕분에 좋은공부 되었어요!! 정말감사합니다~~

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