1 ~ 12 の値でテーブルをクエリし、結果を左外部結合できます。
クエリの代わりにテーブル変数を使用し、CTE を使用して数値を含むテーブルを作成するサンプルを次に示します。
declare @T table
(
Month int
)
insert into @T values(1)
insert into @T values(1)
insert into @T values(1)
insert into @T values(3)
insert into @T values(3)
;with Months(Month) as
(
select 1
union all
select Month + 1
from Months
where Month < 12
)
select M.Month,
count(T.Month) Count,
isnull(sum(T.Month), 0) Sum
from Months as M
left outer join @T as T
on M.Month = T.Month
group by M.Month
結果:
Month Count Sum
----------- ----------- -----------
1 3 3
2 0 0
3 2 6
4 0 0
5 0 0
6 0 0
7 0 0
8 0 0
9 0 0
10 0 0
11 0 0
12 0 0