在SQL结果中(在MySQL或Perl端)填充空日期的最直接方法是什么?我正在用如下的查询从MySQL表构建一个快速CSV:select DATE(date),count(date) from table group by DATE(date) order by date asc;并将它们转储到Perl中的一个文件中:while(my($date,$sum) = $sth->fetchrow) {
print CSV "$date,$sum\n"}然而,数据中存在日期差距:| 2008-08-05 | 4 | | 2008-08-07 | 23 |我想用零计数条目填充数据,以填写缺失的日子:| 2008-08-05 | 4 | | 2008-08-06 | 0 | | 2008-08-07 | 23 |我想出了一个非常尴尬(几乎可以肯定是错误的)的解决办法,每个月都有很多天,还有一些数学,但是在MySQL或Perl方面,必须有更直接的解决办法。我为什么这么笨,有什么天才的主意/耳光吗?最后,我使用了一个存储过程,该存储过程为所讨论的日期范围生成了一个临时表,原因如下:我知道每次我要找的日期范围不幸的是,所讨论的服务器不是我可以在atm上安装perl模块的服务器,它的状态已经破旧到没有任何远程日期:-y。Perl的日期/日期-迭代答案也很好,我希望我可以选择多个答案!
3 回答
茅侃侃
TA贡献1842条经验 获得超21个赞
SELECT DATE(r.date),count(d.date) FROM dates AS r LEFT JOIN table AS d ON d.date = r.date GROUP BY DATE(r.date) ORDER BY r.date ASC;
添加回答
举报
0/150
提交
取消