日期:2014-05-18  浏览次数:20531 次

统计每个月的数据,求SQL语句的实现
表结构:
ID   主键
dtCreate   创建时期;  
blnNewSolve   新解决问题(1是解决的也是回复的,0相反)


一月     ...             五月 六月 七月 八月     ...     十二月
问题回复 ###                             88 72 121 145                   ###
未回复问题   ##                   3 15 1 7                       ###
假设需求五月完成,八月十五日查看统计,八月15号看到的数据,是8.1-8.15的。
如何实现上面的效果;



------解决方案--------------------
select '问题回复 ',count(一月) 一月,...count(十二月) 十二月 from
(select case datepart(mm,dtCreate) when 1 then blnNewSolve end 一月,
case datepart(mm,dtCreate) when 1 then blnNewSolve end 二月,
...
case datepart(mm,dtCreate) when 1 then blnNewSolve end 十二月 from 表 where blnNewSolve=1 ) a
union all
select '问题未回复 ',count(一月) 一月,...count(十二月) 十二月 from
(select case datepart(mm,dtCreate) when 1 then blnNewSolve end 一月,
case datepart(mm,dtCreate) when 1 then blnNewSolve end 二月,
...
case datepart(mm,dtCreate) when 1 then blnNewSolve end 十二月 from 表 where blnNewSolve=0 ) a