我正在尝试从一位客户中选择过去 30 天的所有订单,因此我需要 customer_id = "$customer_id"并计算我每天有多少订单 为那个客户。
我需要像这样结束数组
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 和日期字段。
我发现了这个问题 SQL query for Calculating Total No. of Orders per Day?但这对我没有帮助,或者我不太了解,顺便说一句,我是初学者。谢谢!
附注我设法做的是选择过去 30 天的所有订单。
$this->db->query("SELECT * FROM orders WHERE customer_id=" . $customer['id'] . " AND date > ADDDATE(CURDATE(), INTERVAL -30 DAY)")->result_array();
最佳答案
使用 MySQL EXTRACT函数从您的日期字段 中获取天,然后根据此结果按结果分组。我没有尝试过,但以下查询应该有效:
SELECT COUNT(*) AS orders, date_field
FROM your_table
WHERE customer_id=$my_cusotmer
GROUP BY EXTRACT(DAY FROM date_field)
关于php - 选择最近 30 天的所有订单,并计算每天有多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6559428/