Что-то вроде этого?
Я сократил список столбцов, удалив столбцы, которые не имеют значения, так как вы не предоставили CREATE TABLE & INSERT INTO
операторов (и мне не хотелось печатать так много).Также я бы сказал, что вы допустили ошибку в желаемом выводе - откуда вы взяли ELEMENT_VAL = 473
?Там нет ничего в исходных данных.
SQL> with test (file_name, element_id, element_val, line_num) as
2 (select 'text1.txt', 'DTP01-01', '472' , 42 from dual union all
3 select 'text1.txt', 'DTP02-01', '34567', 42 from dual union all
4 select 'text1.txt', 'DTP03-01', 'RET' , 42 from dual union all
5 select 'text1.txt', 'DTP01-01', '472' , 58 from dual union all
6 select 'text1.txt', 'DTP02-01', '7567' , 58 from dual union all
7 select 'text1.txt', 'DTP03-01', 'QET' , 58 from dual union all
8 --
9 select 'text2.txt', 'CR01-01', '33' , 42 from dual union all
10 select 'text2.txt', 'CR02-01', 'TYES', 42 from dual union all
11 select 'text2.txt', 'CR03-01', 'VBFG', 42 from dual union all
12 select 'text2.txt', 'CR01-01', '65' , 58 from dual union all
13 select 'text2.txt', 'CR02-01', 'RET' , 58 from dual union all
14 select 'text2.txt', 'CR03-01', 'QQQ' , 58 from dual
15 ),
16 src as
17 (select file_name, line_num, element_id, element_val
18 from test
19 where instr(element_id, '01-01') > 0
20 )
21 select t.file_name, t.element_id, t.element_val, t.line_num,
22 s.element_id parent_element_id,
23 s.element_val parent_element_val
24 from test t join src s on s.file_name = t.file_name
25 and s.line_num = t.line_num
26 order by t.file_name, t.line_num, t.element_id;
FILE_NAME ELEMENT_ ELEME LINE_NUM PARENT_E PAREN
--------- -------- ----- ---------- -------- -----
text1.txt DTP01-01 472 42 DTP01-01 472
text1.txt DTP02-01 34567 42 DTP01-01 472
text1.txt DTP03-01 RET 42 DTP01-01 472
text1.txt DTP01-01 472 58 DTP01-01 472
text1.txt DTP02-01 7567 58 DTP01-01 472
text1.txt DTP03-01 QET 58 DTP01-01 472
text2.txt CR01-01 33 42 CR01-01 33
text2.txt CR02-01 TYES 42 CR01-01 33
text2.txt CR03-01 VBFG 42 CR01-01 33
text2.txt CR01-01 65 58 CR01-01 65
text2.txt CR02-01 RET 58 CR01-01 65
text2.txt CR03-01 QQQ 58 CR01-01 65
12 rows selected.
SQL>