database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 30678 게시물 읽기
No. 30678
기간 병합 방법 문의 드립니다
작성자
이중희(iforgod)
작성일
2013-12-22 23:45ⓒ
2013-12-22 23:51ⓜ
조회수
9,021

안녕하세요.

제가 기간 데이터를 하나로 병합하는 쿼리를 작성하고 싶은데요.

도움을 부탁드립니다.

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 에 사용해서 그런거 같습니다.

다른 방법이 있는지 알려주시면 감사하겠습니다.

[Top]
No.
제목
작성자
작성일
조회
30681MariaDB & Galera Cluster 의 DeadLock 문제
김종화
2013-12-28
10933
30680중복되지 않는 난수입력 [1]
정성빈
2013-12-27
11035
30679DB 파일을 등록하려면 어떻게 해야 하나여?
정성욱
2013-12-24
9090
30678기간 병합 방법 문의 드립니다
이중희
2013-12-22
9021
30677안녕하세요 mysql에 대해 몇가지 질문을 드릴려고 합니다.
초보개발자
2013-12-19
9056
30676group by 질문 [3]
강혁
2013-12-19
9195
30675MySQL Windows Installer 설치 후 사용...
김선엽
2013-12-18
8743
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.057초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다