我有一個要求填寫數據中缺失的時間間隔,並填充Cnt列爲0的任何間隙。我需要爲此使用日曆表嗎?問: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