У меня есть записи с идентификатором проекта и «идентификатором наследования», то есть проектом, от которого унаследован текущий проект.Уровень наследования неизвестен.
Теперь мне нужно свернуть это следующим образом: «наследовать от самого верхнего» * 1003 *
Например:
1006 <- 1005 <- 1002 <- 999
prj_id / inherit_id
999 / 1002
1002 / 1005
1005 / 1006
должно свернуться до
1006 <- 1005
1006 <- 1002
1006 <- 999
prj_id / inherit_id
999 / 1006
1002 / 1006
1005 / 1006
Можно ли это сделать в операторе SQL без циклов?Создание временных таблиц в порядке.Это должно работать для FireBird, SQL Server, Oracle 9+ (то есть 3 набора операторов в порядке)
Я только получил это далеко:
Записи, которые наследуются от записи, которая сама наследуется снова:
select tt_prj_id,tt_name,tt_inherit_id from tt_prj a
where a.tt_inherit_id in
(select tt_prj_id from tt_prj b
where b.tt_inherit_id is not null
and b.tt_inherit_id > 0)
Кто может мне помочь дальше?