2015-09-23 2 views
0

У меня есть запрос в MySQL, как этотMysql подсчитывать и Группа по дате

SELECT COUNT(c_Id), DATE_FORMAT(c_Date,'%Y-%m') FROM tbl_complaintsheet GROUP BY DATE_FORMAT(c_Date, '%Y%m') 

Теперь результат

COUNT(c_Id) DATE_FORMAT(c_Date,'%Y-%m') 
----------- ----------------------------- 
      2 2013-12      
     48 2014-01      
     85 2014-02      
     95 2014-03      
     93 2014-04      
     63 2014-05      
     94 2014-06      
     57 2014-07      
     70 2014-08      
     87 2014-09      
     83 2014-10      
     101 2014-11      
     117 2014-12      
     86 2015-01      
     126 2015-02      
     100 2015-03      
     92 2015-04      
     82 2015-05      
      1 2015-08      
      8 2015-09      

Как я могу передать параметры к этому, как, где c_date = 2014?

ответ

2

Попробуйте с извлечением года -

FROM tbl_complaintsheet WHERE YEAR(c_date)=2014

+0

Спасибо очень – user3045457

+0

это не будет используйте индекс, поэтому может быть медленным, если есть огромные данные в таблице, поэтому вы можете использовать «where c_date like« 2014% », который будет использовать индекс и будет быстрым. –

+0

@ ZafarMalik Хм .. Но для этого индексы должны быть установлены первыми. –

2

Вы можете попробовать альясингом и использовать как

SELECT COUNT(c_Id), DATE_FORMAT(c_Date,'%Y-%m') AS dt FROM tbl_complaintsheet WHERE dt LIKE '2014%' GROUP BY DATE_FORMAT(c_Date, '%Y%m') 
0

Попробуйте

SELECT COUNT(cd_Id), DATE_FORMAT(cd_Date,'%Y-%m') AS cd FROM tbl_complaintsheet WHERE YEAR(cd_date) = 2014;