ここに非常に単純なテーブルがあります。
表1ID
日付1
日付
2日付3
データを月とIDで要約して、クエリ結果が次のようになるようにします。
table1のクエリ結果
IDnullではない
月
からのDate1の月数
nullではない月からのDate2の数nullではない
月からのDate3の数
私は現在、@ monthが指定されているものに応じて、1か月だけプルするこのクエリを以下に示します。
Select ID, @month as [Month]
Sum((Case When Month(Date1)=@month then 1 else 0 END)) as [Date1 Count],
Sum((Case When Month(Date2)=@month then 1 else 0 END)) as [Date2 Count],
Sum((Case When Month(Date3)=@month then 1 else 0 END)) as [Date3 Count],
From Table1
Group by ID
しかし、 12か月すべてを取得したいのですが、データベースに月テーブルまたはカレンダーテーブルがありません。各IDの12か月すべてを含むクエリを作成し、Date1、Date2、およびDate3の対応する月数を取得するにはどうすればよいですか。 ?ところで、多くのエントリでは、日付の1つが空になっています。たとえば、Date1とDate3 = Nullであるのに対し、Date2 = '01/01/2008'です。前もって感謝します!