动易SiteFactory前台调用工作量统计

最近有这样一个需求,需要在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的人一定都能明白,这里就不废话了。最后我将我的这个标签导出了,供大家导入测试。当然,如果你有心的话还可以将我所说的那些内容都替换成变量,然后调用标签的时候就能以参数的形式传递进去了,我嘛比较懒,嘿嘿,就不搞啦~~

当月工作量统计标签,单击下载。