使用MySQL生成每日统计数据

时间:2013-05-31 08:29:54

标签: mysql statistics

我需要使用名为“orders”的数据库生成每日销售统计信息,其中一个字段称为“日期”(DATETIME)。

我的查询非常简单:

SELECT DAY(date) , COUNT(id_order)
FROM z_view_order_list
WHERE WEEK(date) = WEEK(NOW())
GROUP BY DAY(date)
LIMIT 7

问题是,如果昨天没有销售,昨天不会 显示在结果上,但我需要它以0值显示。

我的实际结果示例(日/销售):27 / 3,29 / 4,30 / 2 我需要的结果示例(日/销售):27 / 3,28 / 0,29 / 4,30 / 2,31 / 0

提前致谢!

1 个答案:

答案 0 :(得分:0)

创建一个包含所有日期的表calendar,并在此日历上加入您的表格。

创建该日历表的方法:

http://www.richnetapps.com/using-mysql-generate-daily-sales-reports-filled-gaps/

然后

SELECT Day(c.cal_date), COALESCE(COUNT(z.id_order), 0)
FROM calendar c
LEFT JOIN z_view_order_list z ON z.date = c.cal_date
WHERE WEEK(c.cal_date) = WEEK(NOW())
GROUP BY DAY(c.cal_date)
LIMIT 7

当天的建议

请勿使用日期作为您的字段的名称。日期是一种功能,尽量避免混淆......