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
운영게시판
최근게시물
Oracle Q&A 39380 게시물 읽기
No. 39380
순차적으로 삭제 해야하는 데이터의 쿼리 만들기 질문입니다.
작성자
쿼리 초보
작성일
2012-04-05 20:52
조회수
4,248

안녕하세요 쿼리를 하다가 답이 안나와서 이렇게 글을 올립니다.

그냥 지나 치지 마시고 아시는 분 있으시면 도우 주시면 감사하겠습니다.

그리고 설명도 좀 해주시면 좋겠어요

쿼리는 아래와 같습니다.

 

with inv as (   
    select 'P11111400021' as new_pkg, 'P11111400016' as old_pkg, 'RP201111140001' as pkg_no from dual
    union all
    select 'P11111400022' as new_pkg, 'P11111400016' as old_pkg, 'RP201111140001' as pkg_no from dual
    union all
    select 'P12040500033' as new_pkg, 'P12040400074' as old_pkg, 'RP201204050001' as pkg_no from dual
    union all
    select 'P12040500034' as new_pkg, 'P12040400074' as old_pkg, 'RP201204050001' as pkg_no from dual
    union all
    select 'P12040500035' as new_pkg, 'P12040400074' as old_pkg, 'RP201204050001' as pkg_no from dual
    union all
    select 'P12040500037' as new_pkg, 'P12040500015' as old_pkg, 'RP201204050002' as pkg_no from dual
    union all
    select 'P12040500037' as new_pkg, 'P12040500033' as old_pkg, 'RP201204050002' as pkg_no from dual
    union all
    select 'P12040500042' as new_pkg, 'P12040500037' as old_pkg, 'RP201204050003' as pkg_no from dual
    union all
    select 'P12040500043' as new_pkg, 'P12040500037' as old_pkg, 'RP201204050003' as pkg_no from dual
    union all
    select 'P12040500044' as new_pkg, 'P12040500037' as old_pkg, 'RP201204050003' as pkg_no from dual
    union all
    select 'P12040500045' as new_pkg, 'P12040500043' as old_pkg, 'RP201204050004' as pkg_no from dual
    union all
    select 'P12040500045' as new_pkg, 'P12040500044' as old_pkg, 'RP201204050004' as pkg_no from dual
)
select *
  from inv
  order by pkg_no, old_pkg

 

P11111400021 P11111400016 RP201111140001
P11111400022 P11111400016 RP201111140001
P12040500033 P12040400074 RP201204050001
P12040500034 P12040400074 RP201204050001
P12040500035 P12040400074 RP201204050001
P12040500037 P12040500015 RP201204050002
P12040500037 P12040500033 RP201204050002
     
P12040500042 P12040500037 RP201204050003
P12040500043 P12040500037 RP201204050003
P12040500044 P12040500037 RP201204050003
     
P12040500045 P12040500043 RP201204050004
P12040500045 P12040500044 RP201204050004

 

그림에 대한 설명은 아래와 같습니다.

1.  P12040400074를 3개로 분할하여 P12040500033, P12040500034, P12040500035로 만들었습니다.

2. P12040500033을 P12040500015와 병합하여 P12040500037을 생성하였습니다.

3. P12040500037을 P12040500042, P12040500043, P12040500044로 분할 하였습니다.

4. P12040500043, P12040500044를 병합하여 P12040500045를 생성 하였습니다.

문제는 제가 P12040500045번 부터 순차적으로 삭제를 하고 싶습니다.

예를 들어 2단계를 삭제를 하려면 4단계, 3단계를 순차적으로 삭제한 후에 2단계를 삭제 해야 하는 겁니다.

이걸 connect by 를 써서 계층으로 만들어서  레벨을 줄여 나가려고 하는데 쿼리가 도저히 안나오네요

답이 안나와서 이렇게 글을 올립니다.

해결 방법과 설명을 좀 부탁 드리겠습니다~

 

[Top]
No.
제목
작성자
작성일
조회
39383바인딩변수값에 따라 실행 속도가 차이나는 경우 [1]
저글링
2012-04-06
3595
39382한글컬럼명 Pro*c Precompile
손영우
2012-04-05
4139
39381쿼리 좀 도와주세요. 도무지 가닥이 안 잡히네. [2]
서정욱
2012-04-05
4124
39380순차적으로 삭제 해야하는 데이터의 쿼리 만들기 질문입니다.
쿼리 초보
2012-04-05
4248
39379두 쿼리의 차이점?? [3]
최인수
2012-04-05
5022
39377차감(?) 쿼리 질문입니다. [2]
초보
2012-04-04
4336
39376오라클 쿼리 질문드립니다 [1]
진현철
2012-04-04
3826
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다