如何从MySql获取日期明智的报告

时间:2013-09-05 17:43:05

标签: php mysql

我有表格(dataTbl),如下所述。

id  date
 1  05-08-2013
 2  10-08-2013
 3  11-08-2013
 4  12-08-2013
 5  12-08-2013
 6  12-08-2013
 7  21-08-2013
 8  22-08-2013
 9  23-08-2013
10  23-08-2013
11  24-08-2013
12  29-08-2013
13  30-08-2013
14  30-08-2013
15  30-08-2013

我希望在执行查询后,在2013年8月1日至2013年8月30日期间得到如下的输出: -

date       entries
01-08-2013 0
02-08-2013 0
03-08-2013 0
04-08-2013 0
05-08-2013 1
06-08-2013 0
07-08-2013 0
08-08-2013 0
09-08-2013 0
10-08-2013 1
11-08-2013 1
12-08-2013 3
13-08-2013 0
14-08-2013 0
15-08-2013 0
etc., etc.,

如何在MySQL查询中执行此操作?请帮帮我!

在表中,它有第5,第10,第11,第12(3个条目),第21,22,23(2个条目)的记录。

但是输出应该从01,02,03,04,05,06,07,08,09,10 ......开始,有条目数。

1 个答案:

答案 0 :(得分:2)

如果你不想使用php或存储过程,你需要第二个表来列出所有日期,如all_dates

select listdate, count(datatbl.date) from all_dates 
left outer join datatbl on all_dates.listdate = datatbl.date

或者

Select listdate,0 from all_dates where listdate not in (select distinct date from datatbl)
union 
select date, count(*) from databl group by date