2015-05-07 72 views
2

我有一個非常簡單的查詢:http://pastebin.com/CGPZM14U添加缺少的一個月到查詢結果

它計算在一年中每月的文章。假設我在2014年8月沒有寫任何東西。明顯地,而不是8月= 0,我將在7月以後的9月份。

如何添加計數等於0的缺失月份。我有一些工作示例,但我正在尋找儘可能簡單和乾淨的解決方案。

+1

這將理所當然你把查詢的問題,而不是在外部鏈接 –

回答

0

與所有月份創建一個表,然後留下您的查詢加入。沿

select count(1) as count, months.month, year(published_at) as year 
from months left join articles on months.month = month(published_at) 
where published_at >= (now() - interval 1 year) and published_at <= now() 
group by month(published_at) 
order by year asc, month asc 

它將樣的工作,但它會回報你的結果從1至12月,並且不會給你年線。類似的問題被問過,後來我想出了一個非常複雜的查詢,所以如果你沒有找到任何簡單的,可以考慮考慮看看:

Between dates query not working, now we're in a new year

+0

這是正確的方法,但你需要寧願定義一個日期表,並從中獲取'year'和'month'。如果沒有,來自'published_at'字段的年份將爲'null'。 – sgeddes

+0

是的,我在答案中指出了問題:)但是你對這個問題的解決方案其實很好。 – Ishamael

-1

更換CountISNULL(Count, 0)