我想从说25-08-2012至2012年1月9日 找到SQL 记录,并通过我迄今为止如何建立这个sql查询
这里想组是我的查询
SELECT CONVERT(VARCHAR(10), date, 105) AS dt,
COUNT(id) AS cnt
FROM tablename
WHERE date BETWEEN CONVERT(DATETIME, '21-08-2012 00:00:00:000',103)
AND CONVERT(DATETIME, '01-09-2012 23:59:00:000' ,103)
GROUP BY CONVERT(VARCHAR(10), date, 105)
我得到的结果
dt cnt
01-09-2012 48
27-08-2012 1
28-08-2012 3
29-08-2012 11
30-08-2012 3
但预计它作为
dt cnt
25-08-2012 0
26-08-2012 0
01-09-2012 48
27-08-2012 1
28-08-2012 3
29-08-2012 11
30-08-2012 3
我如何我可以修改上面的查询 也试图与CASE,但没有运气
许多谢谢..
你正在使用什么rdbms?也是版本。 –
数据库不会为不存在的日期创建计数。如果您想包含零计数日期,则必须创建一个列出每个日期的临时表并加入它们。 –
SQL Server 2005中我没有在表中的记录进行25-08-2012及26-08-2012,所以我想为0请建议如果u有奥比更好的解决方案 –