最近有这样一个需求,需要在SiteFactory的前台调用作者的工作量统计,发现系统自身并没有提供这样的一个功能,作为一个Programer,这哪能难得住我,嘿嘿,仔细查询了SiteFactory提供的“数据结构”文档,发现在“PE_CommonModel”表中存放了大家发表的各种类型的内容。我想要实现的是统计当月每个人的发文数量(不含未通过审核的)并且按照发文数量进行排序,这样一分析SQL查询语句就出来了:
[codesyntax lang=”sql”]
select Editor,count(*) as Num from PE_CommonModel where ModelID=1 and NodeID=10 and datepart(mm,UpdateTime)=datepart(mm,getdate()) and datepart(yy,UpdateTime)=datepart(yy,getdate()) and status=99 group by Editor order by num Desc;
[/codesyntax]
简单对上面的SQL做下解释,select后面的Editor这个是要统计“作者”,如果大家需要统计“输入者”,可以将此换为“Inputer”,后面的count(*) as Num 是计算发文数量,并用Num表示,这里用Num表示也是为了后面排序时引用方便。
ModelID这一项表示了文章模型,在我的SiteFactory中,ModelID=1代表是文章模型,而NodeID代表了需要统计的小类名称,如果想要统计全部,可以去掉“and NodeID=10”这一行。后面detepart()函数为SqlServer内置的函数,用以格式化时间类型的字段,通过这两句就将查询的文章时间限定在“当月”,当然,你也可以将这两句合为一句:
[codesyntax lang=”sql”]
and datepart(yymm,UpdateTime)=datepart(yymm,getdate())
[/codesyntax]
后面的status=99代表了所有审核通过的文章,具体的status代码,请自行查询SiteFactory的相关文档。
最后的Group By以及Order By决定了分组及排序的字段,学过Sql的人一定都能明白,这里就不废话了。最后我将我的这个标签导出了,供大家导入测试。当然,如果你有心的话还可以将我所说的那些内容都替换成变量,然后调用标签的时候就能以参数的形式传递进去了,我嘛比较懒,嘿嘿,就不搞啦~~
当月工作量统计标签,单击下载。
大哥,您的这个标签下载不了了,能否发一份到我的邮箱,小弟谢谢了。邮箱;hackbb@163.com 万分感激!
@远方: 我这个资源是2011年时候的,迁移的时候丢掉了,不过上文中已经说得很详细了,您可以自己研究下 :)
我也青岛的。
博主有空能不能再导出一下这个标签呀