Я должен взять следующий запрос и вытянуть общие количества порядка и сумму заказов, сгруппированных днем. Я храню все с помощью меток времени.
SELECT
COUNT(id) as order_count,
SUM(price + shipping_price) as order_sum,
DAY(FROM_UNIXTIME(created)) as day
FROM `order`
WHERE '.implode(' AND ', $where).'
Я должен сгруппироваться днем, но когда я делаю для продаж этих прошлых выходных, это берет мой order_count и делает его 1 вместо 3. Как я могу вытянуть вышеупомянутые значения, сгруппированные днем?
Примечание: Интегрирование используется ТОЛЬКО для определения периода времени (ГДЕ создано> = МЕТКА ВРЕМЕНИ И <= МЕТКА ВРЕМЕНИ)
Обновление
Без GROUP BY day
Array (
[order_count] => 3
[order_sum] => 69.70
[day] => 17
)
С GROUP BY day
Array (
[order_count] => 1
[order_sum] => 24.90
[day] => 17
)
Мне нужен этот запрос для возврата каждый день, который имел продажи, сколько заказов и суммы тех продаж. Я пропускаю часть загадки здесь где-нибудь....
Вы просто забыли добавить GROUP BY ...
в конце?
SELECT
COUNT(id) as order_count,
SUM(price + shipping_price) as order_sum,
DAY(FROM_UNIXTIME(created)) as order_day
FROM `order`
WHERE '.implode(' AND ', $where).'
GROUP BY order_day
Вы не можете использовать как день
для столбца дня, поскольку день
является функцией MySQL. Используйте что-то вроде order_day
.
Согласно комментарию @OMG Unicorn, вы можете использовать:
DAY(FROM_UNIXTIME(created)) as `day`
Пока заключить день
в ` обратными кавычками.
Вы, вероятно, работаете в конфликт имен между DAY ()
(функция в MySQL) и day
(имя вашей переменной). Вы пробовали использовать что-то, что не конфликтует, например order_day
?