2012-05-23 2 views
-1

мне нужно сделать запрос, который получает поля, которые соответствуют, что месяц за каждый месяц каждого годаКак я могу сделать запрос для каждого месяца каждого года в MYSQL?

что-то вроде этого:

 
         field 1        field 2 

     count_of_fields_that_corresponds_this_month, same_fields_but_with_value_true 
     --------------------------------------------|-------------------------------- 
january           | 
     --------------------------------------------|------------------------------- 
february           | 
     --------------------------------------------|-------------------------------- 
march            | 
     --------------------------------------------|-------------------------------- 
april            | 
     --------------------------------------------|-------------------------------- 
etc...            | 

в этом примере я имею 2 поля, которые мне нужно заполнить в но на самом деле у меня есть еще много, но я не знаю, как получить эти поля за каждый месяц в одном запросе, я попытался сделать то же самое, но со многими запросами, и я думаю, что это плохая практика, поэтому Можете ли вы посоветовать мне, как это сделать? или какие функции мне нужно использовать в mysql?

Я хочу взять поле1, поле2, поле3 и т. Д. На каждый месяц, и если это возможно и для каждого года, большое спасибо.

$this->db->query("SELECT count(*) AS count FROM `simple` WHERE `ochistka` = 'somevalue' AND MONTH(`date`) = 01"); 
$this->db->query("SELECT count(*) AS count FROM `simple` WHERE `ochistka` = 'somevalue' AND MONTH(`date`) = 01 AND `prime4anie` = 'somevalue'"); 

так в этом запросы я получаю, что поля, но только на один месяц, как я могу улучшить его и сделать их запрос для каждого месяца в одном кадре (запрос)?

+0

ой я цветовой плохую таблицу для зрения, я не знаю, как показать это, извините :(, но я думаю, вы понимаете, что я пытаюсь сказать – BlareStriker

+1

вы можете опубликовать некоторые из реальных запросов вы написали? –

+0

Вы ищете кросс-таблицу или сводный запрос в любой версии mysql, которую у вас есть. –

ответ

3
SELECT YEAR(datefield), MONTH(datefield), COUNT(field1), COUNT(field2) 
FROM table 
GROUP BY YEAR(datefield), MONTH(datefield) 

положить ваши собственные поля и таблицы имен

+0

в порядке, я попробую это, спасибо за этот ответ – BlareStriker

+0

Шаблон SQL - это агрегация - пока вы только группа на YEAR и MONTH вы можете SUM, AVERAGE, MIN, MAX и COUNT другие поля –

+0

действительно это вопрос, который мне нужен, спасибо !!)) – BlareStriker

0

Удалите месяц часть запроса, и вы получите массив результатов. Затем вы можете добавить группу по вызову, чтобы отсортировать их.

SELECT count(*) AS count FROM `simple` WHERE `ochistka` = 'somevalue' GROUP BY MONTH 
Смежные вопросы