안녕하세요 쿼리를 하다가 답이 안나와서 이렇게 글을 올립니다.
그냥 지나 치지 마시고 아시는 분 있으시면 도우 주시면 감사하겠습니다.
그리고 설명도 좀 해주시면 좋겠어요
쿼리는 아래와 같습니다.
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 를 써서 계층으로 만들어서 레벨을 줄여 나가려고 하는데 쿼리가 도저히 안나오네요
답이 안나와서 이렇게 글을 올립니다.
해결 방법과 설명을 좀 부탁 드리겠습니다~
|