2011-11-17 68 views
0

我试图绘制出现在过去7天的特定日期的订单总和,但是当他们没有针对特定日期的任何订单时遇到问题查询不是一个值,也无日期,所以返回一个数组小于7MYSQL:跨日期范围汇总订单的空值为零

SELECT IFNULL(COUNT(*),0) as purchase_count, DATE(tb_order.order_date) as order_date 
       FROM tb_order_attendee_info 
       JOIN tb_order on tb_order.order_id = tb_order_attendee_info.order_id 
       JOIN tb_events on tb_events.event_id = tb_order.event_id 
       WHERE tb_order_attendee_info.refunded='N' AND order_date between DATE_SUB(now(), interval 10 day) and now() 
       GROUP BY DATE(tb_order.order_date)"; 

我一直试图找出如何我可以得到它的阵列与购买数量和递增零个值返回日期,不幸的是它只有在计数大于0时返回一个日期。

回答

1

您试图在没有任何内容的情况下引入结果行数据。这是不可能的(不使用Stored Procedure)。您无法迭代日期,因此可以这么说,SQL中没有for循环。

您可以得到的最接近的是在结果中创建所有日期的(临时)表,然后加入到此表中。