MYSQL-生成填补空白的报告

MYSQL-生成填补空白的报告,mysql,date,datetime,Mysql,Date,Datetime,我如何生成一份报告,填补空白,显示日期和时间段的零结果 以下是我迄今为止对DATE有效的内容: MYSQL SELECT calendar.datefield AS DATE, IFNULL(COUNT(digital_lead.id),0) AS leads FROM digital_lead RIGHT JOIN calendar ON (DATE(digital_lead.received) = calendar.datefield) WHERE (calendar.date

我如何生成一份报告,填补空白,显示日期和时间段的零结果

以下是我迄今为止对DATE有效的内容:

MYSQL

SELECT calendar.datefield AS DATE,
       IFNULL(COUNT(digital_lead.id),0) AS leads
FROM digital_lead RIGHT JOIN calendar ON (DATE(digital_lead.received) = calendar.datefield)
WHERE (calendar.datefield BETWEEN (SELECT MIN(DATE('2014-09-01')) FROM digital_lead) AND (SELECT MAX(DATE(received)) FROM digital_lead))
GROUP BY DATE 
这将生成下表:

 DATE         LEADS 
'2014-11-08', '0'
'2014-11-09', '0'
'2014-11-10', '0'
'2014-11-11', '0'
'2014-11-12', '524'
'2014-11-13', '934'
'2014-11-14', '524'
因此,这会为每天产生结果,即使是那些没有被
时间戳
字段
接收到的
记录的结果

接收的
字段是格式为“YYYY-MM-DD HH:MM:SS”的
时间戳
字段

我希望能够生成一份类似的报告,显示按日期和时间划分的明细-显示日期和时间段的零结果

我创建了一个名为
clock
的实用程序表,其中包含一天中的所有小时

有关SCHEMA的详细信息,请参见SQL FIDLE:

我想我可以将
时钟
表加入到
数字导联
中,就像我在
日历
中所做的那样,但是,这会生成一行,其中包含一个时间和日期2014-11-13 00:00:00

有人能提供解决方案吗

编辑

为了澄清,我想将时钟表连接到上面给出的MYSQL状态,并创建以下输出:

     DATE           HOURS   LEADS
    2014-11-06      00:00:00    0'
                    01:00:00    0'
                    02:00:00    0'
                    03:00:00    4

    2014-11-07      00:00:00    0'
                    01:00:00    2
                    02:00:00    1
使用以下过程生成日历表的日期:

DELIMITER |
CREATE PROCEDURE fill_calendar(start_date DATE, end_date DATE)
BEGIN
  DECLARE crt_date DATE;
  SET crt_date=start_date;
  WHILE crt_date < end_date DO
    INSERT INTO calendar VALUES(crt_date);
    SET crt_date = ADDDATE(crt_date, INTERVAL 1 DAY);
  END WHILE;
END |
DELIMITER ;
分隔符|
创建过程填充日历(开始日期、结束日期)
开始
宣布crt_日期;
设置crt\u日期=开始日期;
而crt\u date

它被称为如下
调用填充日历('2008-01-01','2011-12-31')

如何加入
时钟表?@a1ex07-请参见上面的编辑。这更清楚了吗?万岁!日历上没有太多。“我错过什么了吗?”草莓-我的错!请参见上面的编辑,日期是通过一个过程生成的。