比如一个树形结构表Category是这样的
id parentid quantity
2 1 15
3 1 35
4 3 40
5 1 8
8 4 15
需求:根据一个parentid,算出其下一层的子类列表,并将其下一层的下一层的……子类归并到 下一层并展示,主要用于累死与报表分类的挖掘。
那么例如我传的parentID为1,最后生成的表应该是这样的
id parentid quantity
2 1 15
3 1 90 ---------原表第五行归并到第三行,然后第三行合并到原表第二行
5 1 8
具体实现sql
CREATE FUNCTION [dbo].[FN_Get_StatCategory]
(@n_id INT) --传入的parentid
RETURNS @returntable table(id bigint
,parentid bigint
,quantity int
,lev int)
AS
BEGIN
--临时表用来存读取出来的目录并标示分好目录的层级
declare @tb table(nid int,pid int,nlev int)
--@lev用来存当前读取目录的层级
declare @lev int
declare @nlev