我試圖返回從MySQL一個結果是由年份和月份分組,這對於每年/月返回計數..的MySQL COUNT - 返回零結果,而不是NULL
這裏是哪裏我開始了:
SELECT YEAR(p.pEndDate) AS pYear, MONTHNAME(p.pEndDate) AS pMonth, count(*) AS pNum
FROM projects p
WHERE p.status=3
GROUP BY YEAR(p.pEndDate), MONTH(p.pEndDate)
這個SQL基本上做我需要的90%,除非有一個月的計數爲零的情況。例如,在2009年7月實現了零個項目,3狀態,所以我得到:
2008 November 1
2009 January 2
2009 February 2
2009 March 2
2009 April 1
2009 May 2
2009 June 3
2009 August 2
2009 September 1
2009 October 1
2009 November 2
2009 December 1
2010 January 4
2010 February 1
2010 March 1
2010 April 3
2010 May 3
2010 June 3
2010 July 3
2010 August 3
2010 September 3
2010 October 2
2010 November 2
2010 December 3
2011 January 2
2011 February 1
注意七月怎麼就是不存在。
所以我就開始做一些研究使用另一臺給力的結果集,包括七月。所以,我創建了一個新表「monthTable」,並添加兩列monthID int主鍵,MONTHNAME VARCHAR(3)。
我已經嘗試了很多不同的方式來使用這張表,從右連接等開始..沒有他們已經取得了成功的結果,實際上幾乎我做的每件事產生與上面相同的結果集。
任何幫助將不勝感激!
查看「datetime-generation」標籤的結果 - 我已經回答了過去對同一個問題的各種解釋。您需要獲取不缺少條目的日期列表,然後將您的數據添加到該列表中。 – 2011-03-01 18:09:39
@OMG小馬 - 這就是我對monthTable所做的事情,但是,當我在monthTable和項目表上使用左連接時,返回相同的結果。 – Steve 2011-03-01 18:20:40