日期:2014-05-17  浏览次数:20740 次

请教关于无限分类表中,计算该分类以及所有子分类的文章数量问题
请教大牛
表结构如下:

Id            ParentId         ClassName     Path      NewsCount
1                 0            国内新闻                   210
2                 1            娱乐新闻       |1|         100
3                 0            国外新闻                   140 
4                 3            美国新闻       |3|         20 
5                 4            纽约新闻      |3||4|       20 

NewsCount是统计新闻表中的该分类和其所有子分类的新闻总数量。
比如求分类Id为1的NewsCount,那就是统计新闻表中分类id为1和2的新闻总数(假设分类id为1的新闻为110条,分类id为2的新闻为100条,那么NewsCount就是210)。

描述有点乱。。。

现求update,以下语句是统计每个分类的新闻条数,不包含子分类的,现我想用一条语句统计(包含子分类)。
update tb_Class set NewsCount=(select count(News_Id) from tb_News where tb_News.ClassId=tb_Class.Id)

谢谢各位

------解决方案--------------------
update tb_Class 
set NewsCount=(select count(News_Id) 
               from tb_News 
               where tb_News.ClassId=tb_Class.Id
               or tb_News.ClassId IN(SELECT id FROM tb_Class t WHERE CHARINDEX('
------解决方案--------------------
'+tb_Class.Id+'
------解决方案--------------------
',t.[Path])0>))