SQL code: DECLARE @TB TABLE([Id] INT, [parentId] INT) INSERT @TB SELECT 17, 16 UNION ALL SELECT 16, 0 UNION ALL SELECT 15, 0 UNION ALL SELECT 14, 1 UNION ALL SELECT 13, 6 UNION ALL SELECT 12, 8 UNION ALL SELECT 11, 1 UNION ALL SELECT 10, 2 UNION ALL SELECT 9, 1 UNION ALL SELECT 8, 0 UNION ALL SELECT 7, 0 UNION ALL SELECT 6, 0 UNION ALL SELECT 5, 1 UNION ALL SELECT 4, 2 UNION ALL SELECT 3, 1 UNION ALL SELECT 2, 0 UNION ALL SELECT 1, 0
DECLARE @STR VARCHAR(MAX) SET @STR=''
;WITH CTE AS ( SELECT *,ID AS GRP from @TB WHERE [parentId]=0 UNION ALL SELECT T.*,CTE.ID from @TB AS T JOIN CTE ON T.[parentId]=CTE.ID ) SELECT @STR=@STR+','+RTRIM(ID) from CTE ORDER BY GRP DESC,[parentId],ID
第一句: select ht.gfdm,gfdm.gfmc,gfdm.lb ,sum(jh.htdj*jh.htsl)as je from ht left join gfdm on ht.gfdm=gfdm.gfdm join jh on ht.htbh=jh.hth and ht.htbh not like'del%' and ht. ......