create table test_w (ID int, NAME varchar(50), PARENT int, STATUS int, OWN_ANSWER int);
------------------------------------------------------
insert into test_w values (30, 'Проблема Hardware', null, 1, 0);
insert into test_w values (31, 'Вышел из строя ко', 30, 1, 0);
insert into test_w values (32, 'Вышел из строя м', 30, 1, 0);
insert into test_w values (37, 'Проблема Software', null, 1, 0);
insert into test_w values (38, 'Сбой маршрутизации', 37, 1, 0);
insert into test_w values (39, 'Петля/Флуд', 37, 1, 0);
insert into test_w values (42, 'ВОЛС', null, 1, 0);
insert into test_w values (43, 'Обрыв ВОЛС', 42, 1, 0);
insert into test_w values (44, 'Битый патч-корд/р', 42, 1, 0);
insert into test_w values (46, 'Факторы внешней с', null, 1, 0);
-----------------------------------------------------
CREATE OR REPLACE VIEW V_REF_22_227_FN_REASONS AS
select
LEVEL AS level_id,
ID AS reason_id,
NAME AS reason_desc,
PARENT AS reason_parent,
status,
own_answer from test_w r
START WITH PARENT IS NULL
CONNECT BY r.PARENT = PRIOR r.ID;
----------------------------------------------------
SELECT r1.reason_id AS reason1_id,
r1.reason_desc AS reason1_desc,
r1.status AS status1,
r1.own_answer AS answer1,
r2.reason_id AS reason2_id,
r2.reason_desc AS reason2_desc,
r2.reason_parent AS reason2_parent,
r2.status AS status2,
r2.own_answer AS answer2
FROM V_REF_22_227_FN_REASONS r1,
V_REF_22_227_FN_REASONS r2
WHERE 1=1
AND r1.level_id = 1
AND r2.level_id = 2
AND r2.reason_parent (+) = r1.reason_id