2016-10-08 2 views
1

Я пытаюсь написать инструкцию MySQL SELECT в PHP.MySQL получает количество от последних 12 месяцев, сгруппированных по месяцам

У меня есть 2 стола, sales и sale_items.

продажи имеют столбцы: sale_id, status

sale_items имеют столбцы: sale_id, date_added (DATETIME) quantity

мне нужно возвращать величины из sale_items, в течение последних 12 месяцев, сгруппированных по месяцам и где status соответствующей строки в sales равен «завершен» (как вы можете видеть, sales и sale_items могут быть соединены sale_id).

Я попытался модифицировать оба следующих, чтобы удовлетворить свои потребности, но не повезло:

MySQL monthly Sale of last 12 months including months with no Sale

Mysql sum for last 12 months

ответ

1

Это очень легко вы можете использовать MySQL MONTH() функцию для этого вместе с GROUP BY caluse.

SELECT SUM(SI.quantity),MONTH(SI.date_added) 
FROM sale_items SI 
JOIN sales S 
ON S.id=SI.sale_id 
WHERE S.status = 'completed' 
GROUP BY MONTH(SI.date_added); 
+0

Ну это делает определенные, серьезные предположения о наборе – Strawberry

+0

я предполагаю, что вы говорите о поле даты, не так ли? –

+0

Да, поле 'date_added' является тем, которое будет использоваться для группировки, я дам это в ближайшее время. – sgspragg

0
SELECT COUNT(quantity),MONTH(SI.date_added) 
FROM sale_items SI 
JOIN sales S 
ON S.id=SI.sale_id 
WHERE S.status = 'completed' 
GROUP BY MONTH(SI.date_added); 
+0

Хотя этот фрагмент кода может решить проблему вопрос, [включая объяснение] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. – andreas

+0

Хорошо, я объясню больше в следующий раз извините. – MounirOnGithub

Смежные вопросы