выбрать все заказы за последние 30 дней и посчитать, сколько в день - PullRequest
4 голосов
/ 03 июля 2011

Я пытаюсь выбрать все заказы за последние 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-запрос для расчета общего количества заказов в день? но это не помогает мне, или я не очень хорошо понимаю, кстати, я новичок. Спасибо!

p.s. что мне удалось сделать, это выбрать все заказы за последние 30 дней.

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

1 Ответ

8 голосов
/ 03 июля 2011

Используйте функцию MySQL EXTRACT , чтобы извлечь день из поля даты , а затем сгруппировать результаты в соответствии с этим.Я не пробовал, но следующий запрос должен работать:

SELECT COUNT(*) AS orders, date_field
FROM your_table
WHERE customer_id=$my_cusotmer
GROUP BY EXTRACT(DAY FROM date_field)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...