分层查询中的排序问题

问题描述

我有以下分层形状的数据,其中我想添加 parentid wise sub-totals。

但是我无法按照我的要求对数据进行排序,请帮助我。

  • 原始数据:

    enter image description here

  • 所需数据:

    enter image description here

关键是在第 4 级之后,它的后代节点应该被打印出来,我设法用 Union All Query 添加了它,但我不知道如何排序,所以那个节点没有。 group 2 的 1.1.1 应该在节点 1.1.1.4 之后打印,然后是 1.1 然后是 1,依此类推。

我使用的是 sql server 数据库

请帮我解决这个问题。

谢谢/卢克曼

create table mytable 
    (id int primary key,node varchar(50) not null,type char(1) not null,lvl int,amt decimal(10,2),parentid int);

insert into mytable (id,node,type,lvl,parentid,amt) values(1,'1','H',1,NULL,0); 
insert into mytable (id,amt) values(2,'1.1',2,amt) values(3,'1.1.1',3,amt) values(4,'1.1.1.1','D',4,1000); 
insert into mytable (id,amt) values(5,'1.1.1.2',2000); 
insert into mytable (id,amt) values(6,'1.1.1.3',3000); 
insert into mytable (id,amt) values(7,'1.1.1.4',4000); 
insert into mytable (id,amt) values(8,'2',amt) values(9,'2.1',8,amt) values(10,'2.1.1',9,amt) values(11,'2.1.1.1',10,amt) values(12,'2.1.1.2',amt) values(13,'2.1.1.3',amt) values(14,'2.1.1.4',4000);


select * from mytable 
union all select * from mytable 
where type='H'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)