当前位置: 代码迷 >> Sql Server >> 念按照时间段group by
  详细解决方案

念按照时间段group by

热度:89   发布时间:2016-04-24 09:19:13.0
想按照时间段group by
比如 今天是2015-03-14日

 table a

 id             date 
 1               2015-03-14
 2               2015-03-14
 3               2015-03-13
 4               2015-03-13
 5               2015-03-13
 6               2015-03-12
 7               2015-03-12
 8               2015-03-11
 9               2015-03-10
 10              2015-03-09
11                2015-03-08

我想得到         今日(2015-03-14)             2单
                         昨日(2015-03-13)             3单
                         3日到5日                                 5单
                          5日开外                                   1单
------解决思路----------------------
select meno,count(meno) as [单数],convert(varchar(10),count(meno))+'单' as [单数]
from(
select id,
case 
when [date]=convert(varchar(10),GETDATE(),120) then '今日('+convert(varchar(10),GETDATE(),120)+')'
when [date]=convert(varchar(10),GETDATE()-1,120) then '昨日('+convert(varchar(10),GETDATE()-1,120)+')'
when [date]>=convert(varchar(10),GETDATE()-4,120) and [date]<=convert(varchar(10),GETDATE()-2,120) then '3日到5日'
when [date]<=convert(varchar(10),GETDATE()-5,120) then '5日开外'
end as meno
from #temp
) as tab
group by meno
order by min(id)
  相关解决方案