我正在尝试从 MySql 返回一个按年和月分组的结果集,并且每个年/月都会返回一个计数。
这是我开始的地方:
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
请注意七月是如何不存在的。
所以我开始做一些研究,使用另一个表来强制结果集中包含 7 月。所以我创建了一个新表'monthTable'并添加了两列monthID int Primary Key,monthName VARCHAR(3)。
我已经尝试了许多不同的方法来使用这个表,从 RIGHT JOIN 等等开始。他们都没有产生成功的结果,事实上我所做的几乎所有事情都会产生与上面相同的结果集。
任何帮助将不胜感激!