データの欠落した時間ギャップを埋める必要があり、ギャップのいずれかに対してCnt列に0を設定する必要があります。このためにカレンダーテーブルを使用する必要がありますか?Q:TSQL - データに年月不足のギャップを追加しますか?
私のクエリの結果は既に集計されています。ギャップを追加するだけです。
select name
,YR
,MO
,[Cnt]
from dbo.OON
電流出力:
Name | YR | MO | Cnt
Kelly | 2014 | 1 | 197
Kelly | 2014 | 3 | 200
Kelly | 2014 | 5 | 300
Kelly | 2015 | 2 | 100
Kelly | 2015 | 3 | 50
Kelly | 2015 | 6 | 70
所望の出力:
Name | YR | MO | Cnt
Kelly | 2014 | 1 | 197
Kelly | 2014 | 2 | 0
Kelly | 2014 | 3 | 200
Kelly | 2014 | 4 | 0
Kelly | 2014 | 5 | 300
Kelly | 2014 | 6 | 0
Kelly | 2014 | 7 | 0
Kelly | 2014 | 8 | 0
Kelly | 2014 | 9 | 0
Kelly | 2014 | 10 | 0
Kelly | 2014 | 11 | 0
Kelly | 2014 | 12 | 0
Kelly | 2015 | 1 | 0
Kelly | 2015 | 2 | 100
Kelly | 2015 | 3 | 50
Kelly | 2015 | 4 | 0
Kelly | 2015 | 5 | 0
Kelly | 2015 | 6 | 70
Kelly | 2015 | 7 | 0
Kelly | 2015 | 8 | 0
Kelly | 2015 | 9 | 0
Kelly | 2015 | 10 | 0
Kelly | 2015 | 11 | 0
Kelly | 2015 | 12 | 0
ええ、私は通常、カレンダーテーブルでこれを行います。クエリ時に再帰的に生成することもできますが、永続的なものを作成してデータウェアハウスに格納することをお勧めします。これを視覚化する場合は、Power BIを使用することをお勧めします.CALENDARAUTO()を使用してDAXでカレンダーを生成できます。 – smj
ここには良い記事があります:https://www.mssqltips.com/sqlservertip/4054/creating-a-date-dimension-or-calendar-table-in-sql-server/ – smj