求一个SQL语句,大神赐教

图片说明

查询出两个日期之间的每天的记录数,没有记录返回日期和0;我写了一个查不出来求指导,在线等。SELECT LEFT(CONVERT(VARCHAR(8), AddTime, 112), 8) AS [日期], isnull(COUNT(*),0)AS [数量] FROM IPCount where QRCodeID=89 and AddTime>='2015-04-03 00:00:00' and AddTime <='2015-04-21 23:59:59' GROUP BY LEFT(CONVERT(VARCHAR(8), AddTime, 112), 8);

一个简单的方法,就是建一个数据库表,存储每月的日期,相当于一年365天,存储365条日期数据。10年存3650,100年36500,数据量不算大。
然后这张表在和你的上面SQL做左连接就能实现你要的效果了。
避免了中间缺日期需要补日期的麻烦