안녕하세요.
제가 기간 데이터를 하나로 병합하는 쿼리를 작성하고 싶은데요.
도움을 부탁드립니다.
sdt edt
2013-3-1, 2013-5-31 (1)
2013-2-1, 2013-4-30 (2)
위의 2개의 기간 데이터가 있을때 병합하여 아래와 같이 결과를 만들고 싶습니다.
sdt edt
2013-2-1, 2013-5-31 (결과)
----------------------------------------------------------------------------
update
dt_mge_tbl mge1
set
mge1.sdt=
(
select
min(mge2.sdt)
from
dt_mge_tbl mge2
where
mge2.sdt <= date_sub(mge1.sdt, interval 1 day)
and mge2.edt >= date_sub(mge1.sdt, interval 1 day)
)
;
update
dt_mge_tbl mge1
set
mge1.edt=
(
select
max(mge2.edt)
from
dt_mge_tbl mge2
where
mge2.sdt <= date_sub(mge1.edt, interval 1 day)
and mge2.edt >= date_sub(mge1.edt, interval 1 day)
)
;
-----------------------------------------------------------------------------
위와 같이 2개의 update 를 이용하여 sdt, edt를 수정하고
나중에 중복제거를 하려고 했습니다.
그런데 Error 1093 에러가 나옵니다.
아마 update에 사용하는 table을 select 에 사용해서 그런거 같습니다.
다른 방법이 있는지 알려주시면 감사하겠습니다. |