Задавайте вопросы, мы ответим
Вы не зашли.
Вот столкнулся с какой, на первый взгляд - пустяковой заморочкой: Имеется проектик, где пользователи голосуют за понравившуюся фотку. В таблицу заносится ID фотки и дата голосования. Всё простенько, всё работает. Теперь пишу скрипт отчёта, в которой голоса суммируются по месяцам, и никак не могу въехать в правильную логику SQL-запроса. Т.е., в идеале нужна таблица:
picID | jan | feb | mar | ...
-------------------------------------------------------------------
1 | 207 | 89 | 1122 |
2 | 98 | 0 | 89 |
4 | 1254 | 343 | 808 |
Делать это циклом запросов (SELECT COUNT(*) AS jan WHERE (picID=xxx AND voted>'2009-12-31' AND voted<'2010-02-01')) как-то уж черезчур громоздко. Как думаете, есть ли более изящное решение?
Спасибо заранее.
Неактивен
Проще всего сделать
Неактивен
запрос никак не учитывает год, а судя по запросу который приведен в качестве примера, год все таки нужно учитывать и запрос можно переписать след. образом:
Неактивен
ну а в плане производительности, предложил бы хранить либо LAST_DAY(voted), либо MONTH(voted) (в зависимости от необходимости учитывать год) в таблице с результатами голосования и ввести индекс (picID + "это поле"). избыточность в данном случае позволит произвести группировку более произодительно
Неактивен