我有一个项目ID和一个'inherit id'的记录,即当前项目继承的项目。继承级别未知。SQL递归记录:如何折叠为“仅限一个级别”?
我现在需要折叠此于:
例如, '从最顶部的继承':
1006 <- 1005 <- 1002 <- 999
prj_id/inherit_id
999/1002
1002/1005
1005/1006
应崩
1006 <- 1005
1006 <- 1002
1006 <- 999
prj_i d/inherit_id
999/1006
1002/1006
1005/1006
这可以在没有循环的SQL语句中完成吗? 创建临时表很好。 应该为火鸟,SQL Server的工作,甲骨文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)
谁能帮我进一步?
据我所知,甲骨文是支持[分层查询]唯一的引擎(http://docs.oracle .com/cd/B19306_01/server.102/b14200/queries003.htm)。 – dasblinkenlight 2012-01-04 13:48:23
在MYSQL中,你也可以使用group_concat函数。 – 2012-01-04 13:54:37
“根”项目具有什么作为inherit_id? – Alex 2012-01-04 13:56:24