选择过去30天的所有订单,并计算每天的订单数量

时间:2011-07-02 20:25:55

标签: php mysql codeigniter

我正在尝试从一位客户中选择过去30天的所有订单,因此我需要customer_id =“$ customer_id”并计算我每天订单数量< / strong>为那个客户。

我最终需要像这样的数组

Array ( 
  [1] => Array (
                 [orders] => 41
                 [date] => 2011-06-13 17:43:50 
               )
  [2] => Array (
                 [orders] => 11
                 [date] => 2011-07-13 17:43:50  
               )
  [4] => Array (
                 [orders] => 2
                 [date] => 2011-12-13 17:43:50  
               )

  and so on... for 30 days, if some day I dont have any orders, I dont need array or [orders] = 0 ...

}

我有一个名为“orders”的表,其中包含id,customer_id和date字段。

我发现了这个问题SQL query for Calculating Total No. of Orders per Day?但它没有帮助我,或者我不太了解它,顺便说一下我是初学者。谢谢!

P.S。我设法做的是选择过去30天的所有订单。

$this->db->query("SELECT * FROM orders WHERE customer_id=" . $customer['id'] . " AND date > ADDDATE(CURDATE(), INTERVAL -30 DAY)")->result_array();

1 个答案:

答案 0 :(得分:8)

使用MySQL EXTRACT函数从日期字段中获取,然后根据此分组结果。我没有尝试过,但以下查询应该有效:

SELECT COUNT(*) AS orders, date_field
FROM your_table
WHERE customer_id=$my_cusotmer
GROUP BY EXTRACT(DAY FROM date_field)