日期:2014-05-16  浏览次数:20559 次

如何按天进行汇总统计
现有一个表tableA (Rid(int) , RName(nvarchar),Rbegintime (datetime),Rendtime(datetime) ,Rlong(decimal,Rtype(nvarchar),Rother(nvarchar))

RID RName RBeginTime         REndTime          RLong Rtype Rother
1 1#筒仓 2013-11-07 10:57:51.213  2013-11-07 11:01:08.297 3.00 低流量  早班
2 2#筒仓 2013-11-07 10:57:51.213  2013-11-07 11:01:08.297 4.00 高流量  中班
3 3#筒仓 2013-11-08 10:57:51.213  2013-11-08 11:01:08.297 5.00 低流量  早班
4 1#筒仓 2013-11-08 10:57:51.213  2013-11-08 11:01:08.297 6.00   高流量  中班
5 2#筒仓 2013-11-09 10:57:51.213  2013-11-09 11:01:08.297 7.00 低流量  夜班
6 3#筒仓 2013-11-10 10:57:51.213  2013-11-10 11:01:08.297 8.00 高流量  早班
7 1#筒仓 2013-11-10 10:57:51.213  2013-11-10 11:01:08.297 9.00 中流量  中班

如何根据根据每天来汇总分类显示数据呢
如以下:
日期         班次   高流量  低流量  中流量 
2013-11-07    早班    4       3       0
2013-11-07    中班    5       3       0

------解决方案--------------------
数据与结果不对应 
其实你这个是个简单的行列转换

select
  convert(varchar(10,RBeginTime,120) as 日期,Rother as 班次,
  sum(case when Rtype='高流量' then 1 else 0 end) as 高流量,
  sum(case when Rtype='低流量' then 1 else 0 end) as 低流量,
  sum(case when Rtype='中流量' then 1 else 0 end) as 中流量
from 
  tableA
group by
  convert(varchar(10,RBeginTime,120)