我需要使用名为“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
提前致谢!
答案 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
当天的建议
请勿使用日期作为您的字段的名称。日期是一种功能,尽量避免混淆......