YEAR と MONTH でグループ化され、YEAR/MONTH ごとにカウントが返される 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 月がそこにないことに注意してください。
そこで、別のテーブルを使用して、結果セットに 7 月を強制的に含める調査を開始しました。そこで、新しいテーブル「monthTable」を作成し、2 つの列 monthID int Primary Key、monthName VARCHAR(3) を追加しました。
RIGHT JOINなどから始めて、このテーブルを使用するさまざまな方法を試しました..成功した結果が得られたものはありません.実際、私が行うほとんどすべてで、上記と同じ結果セットが得られます.
どんな助けでも大歓迎です!