日期:2014-05-19  浏览次数:20426 次

cms数据分组统计
是一个文章表article
articleid(int)   classid(int)   ....
一个文章分类表aclass
classid(int)   parentid(int)   articlenum(int)...


现在要统计用一条语句更新所有aclass表中记录的articlenum这个字段。

aritclenum   =   所有这个分类下的文章数,包括这个分类的子分类的文章。

------解决方案--------------------
假设你的函数是正确的

第一种,试试:
update a
set a.articlecount = (select sum(articlenum) from aclass
where (select ', '+dbo.f_news_getchildclassstr(a.classid) + ', ' like ', '+classid + ', ' )
)
from aclass a


第二种,试试:
update a
set articlecount = (select sum(articlenum) from aclass
where classid in (select classid from dbo.f_news_getchildclass(a.classid)))
from aclass a