Tsql T-SQL关于递归查询(CTE)的几个问题

Tsql T-SQL关于递归查询(CTE)的几个问题,tsql,common-table-expression,Tsql,Common Table Expression,我使用CTE()从树中获取所有项目(例如广告),但我想知道两件事——最困难的部分: 1) 是否有可能获得找到的广告的所有类别名称?(在递归CTE查询中,查看上面的超链接) 2) 和(可选)如何获得每个类别的总找到的广告数?我的意思是,假设我从3个类别中找到了6个项目,我希望看到这样的结果 category1 (6) -\ | category3 (4) category2 (2) 任何想法都会非常有帮助对于第一个问题,你需要从下到上,它可以通过改变查询顺序来解决,例

我使用CTE()从树中获取所有项目(例如广告),但我想知道两件事——最困难的部分:

1) 是否有可能获得找到的广告的所有类别名称?(在递归CTE查询中,查看上面的超链接)

2) 和(可选)如何获得每个类别的总找到的广告数?我的意思是,假设我从3个类别中找到了6个项目,我希望看到这样的结果

category1 (6) -\
|               category3 (4)
category2 (2)

任何想法都会非常有帮助

对于第一个问题,你需要从下到上,它可以通过改变查询顺序来解决,例如:

with CTE (id, pid, name) 
as
(
select id, parentid as pid,name
from category
where id = @lowLevelCategory
union all
select CTE.pid as id , category.parentid as pid, category.name
from CTE 
inner join category 
on category.id = CTE.pid
)
select * from ss

对于第二个:您只能计算子项的计数,但不能计算总和,并且您需要一些函数来进行此计算,因为分组或子选择不能是递归部分

答案包括一个链接,指向一篇解释事情的文章-您考虑过阅读该链接吗?