MYSQL-生成填补空白的报告
我如何生成一份报告,填补空白,显示日期和时间段的零结果 以下是我迄今为止对DATE有效的内容: MYSQLMYSQL-生成填补空白的报告,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
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-请参见上面的编辑。这更清楚了吗?万岁!日历上没有太多。“我错过什么了吗?”草莓-我的错!请参见上面的编辑,日期是通过一个过程生成的。