日期:2014-05-17  浏览次数:20485 次

查询七天数据,每天数据有且只有一条
表A,id,Name,date
查询最近七天的数据,要统计每天的数据量,有且只有七条数据……
select date,sum(1) as num from A where datebetween dateadd(day,-7,getdate()) and getdate()
group by date
这是我写的,因为date是datetime类型的,没办法按每一天分组,求大神帮解决啊……
SqlServer T-SQL select

------解决方案--------------------
引用:
有个问题,就是如果当天没有数据,刚会不显示,我要的是能显示7条数据,每天一条,数据为空的,num值为0,这个怎么弄??

SELECT a.[date], num=SUM((CASE WHEN B.[date] IS NULL THEN 0 ELSE 1 END))  --注意:你的计算方式可能要变
FROM
(
SELECT [date]=CONVERT(CHAR(10),DATEADD(DAY,-number,GETDATE()),120) FROM master..spt_values
WHERE [type] = 'p' AND number < 7
) a
LEFT JOIN youtablename B
ON a.[date] = CONVERT(CHAR(10), B.[date], 120)
GROUP BY a.[date]