列日付のテーブルがあります。数か月の記録が含まれていますが、継続的ではありません。どの月が存在するか (特定の月の 1 つ以上のレコードを意味する現在) を確認するために、概要を作成しようとしました。次のようになります。
2013 Jan Feb Mar - May Jun // etc
2012 Jan - - Apr May - // etc
現在の月の最初の日をすべて取得できますが、転置する方法に行き詰まっています。私がこれを行う場合:
SELECT
IF (d = 1, month ,'-') AS Jan,
IF (d = 2, month ,'-') AS Feb,
IF (d = 3, month ,'-') AS Mar
FROM
(SELECT
MONTH(date) AS d,
DATE_FORMAT(date, '%Y-%m-01') AS month
FROM
table
GROUP BY
month
ORDER BY
month) m
GROUP BY YEAR(month)
結果としてこれを与える場合:
Jan Feb Mar
- - Mar
- Feb -
それは与えるべきですが:
Jan Feb Mar
- - Mar
Jan Feb Mar