안녕하세요
코드 | 적용일자 | 종료일자 |
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만건 정도 됩니다...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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 ; |