SQL存储过程显示树形菜单
SQL code
这是我的一个存储过程,但是现在有个问题就是在在显示层次的时候不是根据我需要的形式显示的。
我需要显示的是
1
2
3
2
3
4
3
4
5
4
5
2
3
而它显示的层次关系是
1
2
2
3
3
3
4
4
4
5
5
高手望请教。
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[P_DJP] ( @deeplevel int, @firstcode nvarchar(100), @liqty int, @gd nvarchar(100) ) AS SET NOCOUNT ON SET XACT_ABORT ON BEGIN create table #tree ( bomno nvarchar(100), code nvarchar(100), deeplevel int, cbdesc nvarchar(100), qty_nee numeric(19,8), loc varchar(32), wastage numeric(6,2), liqty numeric(19,8), sh numeric(19,8), isLeafnode int, tree nvarchar(max) default '' ) declare @cbdesc varchar(32), @QTY_NEED numeric(19,8), @loc varchar(32), @wastage numeric(6,2) insert #tree select BOMT.BOMNO,BOMT.CODE,@deeplevel,BOMT.CBDESC,BOMT.QTY_NEED,MAINBOM.LOC,BOMT.WASTAGE,ceiling((@liqty+(@liqty*(WASTAGE/100)))*QTY_NEED),(WASTAGE/100),1, BOMT.CODE + left('00000000000000000000',20-len(BOMT.CODE)) from BOMT left JOIN MAINBOM on BOMT.CODE=MAINBOM.BOMNO where BOMT.BOMNO=@firstcode WHILE @@rowcount > 0 BEGIN SET @deeplevel = @deeplevel + 1 update #tree set isLeafnode= 0 from #tree join BOMT on #tree.deeplevel=@deeplevel-1 and BOMT.BOMNO collate database_default =#tree.code insert #tree select @firstcode,BOMT.CODE,@deeplevel,BOMT.CBDESC,BOMT.QTY_NEED,MAINBOM.LOC,BOMT.WASTAGE,ceiling((liqty+(liqty*(WASTAGE/100)))*QTY_NEED),sh+(WASTAGE/100),1,#tree.tree+'_'+BOMT.CODE+left('00000000000000000000',20-len(BOMT.CODE)) from BOMT join #tree on #tree.deeplevel=@deeplevel-1 and BOMT.BOMNO collate database_default =#tree.code left join MAINBOM on BOMT.CODE=MAINBOM.BOMNO END select space((deeplevel-1)*2)+cast(deeplevel as varchar),code,cbdesc,qty_nee,loc,sh,liqty from #tree RETURN @@ERROR END SET NOCOUNT OFF SET XACT_ABORT OFF
这是我的一个存储过程,但是现在有个问题就是在在显示层次的时候不是根据我需要的形式显示的。
我需要显示的是
1
2
3
2
3
4
3
4
5
4
5
2
3
而它显示的层次关系是
1
2
2
3
3
3
4
4
4
5
5
高手望请教。
作者: zhangzhen_927116 发布时间: 2011-06-16
SQL code
1 2 3 2 3 4 3 4 5 4 5 2 3
作者: zhangzhen_927116 发布时间: 2011-06-16
求高手。。。
作者: zhangzhen_927116 发布时间: 2011-06-16
一般树节点在数据库存储,有2种方式
一种是需要递归的:id,父id
一种是无须递归的:id,层次,在本子树里的序号
你的是哪一种?
一种是需要递归的:id,父id
一种是无须递归的:id,层次,在本子树里的序号
你的是哪一种?
作者: sz_haitao 发布时间: 2011-06-16
我记得上次帮你写过。。
http://topic.csdn.net/u/20110506/16/572420d1-3bc8-4e51-8aef-d29715fe09a8.html
http://topic.csdn.net/u/20110506/16/572420d1-3bc8-4e51-8aef-d29715fe09a8.html
作者: duoxu1983 发布时间: 2011-06-16
引用 3 楼 sz_haitao 的回复:
一般树节点在数据库存储,有2种方式
一种是需要递归的:id,父id
一种是无须递归的:id,层次,在本子树里的序号
你的是哪一种?
一般树节点在数据库存储,有2种方式
一种是需要递归的:id,父id
一种是无须递归的:id,层次,在本子树里的序号
你的是哪一种?
是第一种
作者: zhangzhen_927116 发布时间: 2011-06-16
引用 4 楼 duoxu1983 的回复:
我记得上次帮你写过。。
http://topic.csdn.net/u/20110506/16/572420d1-3bc8-4e51-8aef-d29715fe09a8.html
我记得上次帮你写过。。
http://topic.csdn.net/u/20110506/16/572420d1-3bc8-4e51-8aef-d29715fe09a8.html
是写过但是它在显示层次的时候会有问题。就像我上面说的
1
2
2
3
3
3
4
4
4
5
5
它是这样显示的。
而我是想这样显示
1
2
3
2
3
4
3
4
5
4
5
2
3
作者: zhangzhen_927116 发布时间: 2011-06-16
来帮帮我啊有什么方法活着办法啊
作者: zhangzhen_927116 发布时间: 2011-06-16