2012-07-12 10 views
2

그래서 여기에 내 문제가 있습니다. 나는 몇 년 동안 매달 앨범 수를 얻으려고 노력하고 있습니다. 이 내 쿼리MySQL 쿼리 더 이상한 쿼리 결과로 쿼리 할 때

SELECT DATE(a.date), COUNT(a.id) 
FROM album a 
JOIN event e ON e.id = a.event_id 
WHERE YEAR(a.date) >= 2001 
AND e.client_id = 89 
GROUP BY MONTH(a.date) 
ORDER BY a.date DESC 
입니다

반환 된 결과 2012 에 대한

+--------------+-------------+ 
| DATE(a.date) | COUNT(a.id) | 
+--------------+-------------+ 
| 2011-09-09 |   15 | 
| 2011-08-26 |   9 | 
| 2010-01-01 |   28 | 
| 2006-03-03 |   20 | 
| 2005-12-02 |   20 | 
| 2005-11-11 |   15 | 
| 2005-10-07 |   13 | 
| 2005-07-01 |   12 | 
| 2005-06-03 |   6 | 
| 2005-05-06 |   18 | 
| 2005-04-15 |   15 | 
| 2005-02-04 |   22 | 
+--------------+-------------+ 
12 rows in set (0.00 sec) 

이 결과 집합이없는 결과입니다하지만이

SELECT DATE(a.date), COUNT(a.id) 
FROM album a 
JOIN event e ON e.id = a.event_id 
WHERE 
YEAR(a.date) > 2005 
AND e.client_id = 89 GROUP BY MONTH(a.date) 
ORDER BY a.date DESC; 

를 작성하면 지금은 2012을 얻을 수 있지만, 나는 2005 년을 놓치고있다 :/아무도 나에게 이것을 설명 할 수 있니?

+--------------+-------------+ 
| DATE(a.date) | COUNT(a.id) | 
+--------------+-------------+ 
| 2012-06-01 |   2 | 
| 2012-05-04 |   14 | 
| 2012-04-06 |   13 | 
| 2011-12-02 |   10 | 
| 2011-11-04 |   9 | 
| 2011-10-07 |   10 | 
| 2011-09-09 |   9 | 
| 2011-08-26 |   6 | 
| 2010-01-01 |   26 | 
| 2006-07-07 |   8 | 
| 2006-03-03 |   19 | 
| 2006-02-03 |   16 | 
+--------------+-------------+ 
12 rows in set (0.01 sec) 
+3

'올해 (a.date)> 2005 년을 확인하십시오 ....''올해 (a.date)> 2004' 또는'> =' – silly

답변

2

당신은 내가 당신의 연간 데이터를 하나의 계수로 결합되는 생각 MONTH에 의해 그룹화된다 (당신이 12 행 매월마다 1을 얻을주의). 나는

(바보가 지적했듯이 두 번째 경우에 당신이 year > 2005를 호출하여 2005 개 데이터를 얻을 수 없습니다, 첫 번째 경우에 대한 어쨌든)
GROUP BY YEAR(a.date) 
GROUP BY MONTH(a.date) 

... 당신은 올해 월별로 그룹화하여 해당 문제를 해결할 수 있습니다 생각
+0

너희들을 감사하십시오 !!! 벽에 두드리는 소리에서 내 머리를 구 했어요. 고마워요 !!! 정말 고맙습니다. –