在SQL Server 2000 中產生臨時日期表
要在SQL Server 2000 中建立一個填入一系列日期的臨時表,種方法是當可用資料有差距時,需要採取這種方法。以下解決方案基於所提出的問題,並提供產生此類表格的逐步指南。
首先,宣告變數來保存開始日期和結束日期:
declare $startDate set $startDate = select min(InsertDate) from customer declare $endDate set $endDate = select max(InsertDate) from customer
接下來,建立一個永久表來保存所需範圍內的所有日期:
CREATE TABLE #Dates ( Month DATE, Trials INTEGER, Sales INTEGER )
現在,使用遞增日期的WHILE循環填充表一天,直到到達結束日期:
DECLARE @dIncr DATE = $startDate DECLARE @dEnd DATE = $endDate WHILE ( @dIncr < @dEnd ) BEGIN INSERT INTO #Dates (Month, Trials, Sales) VALUES(@dIncr, 0, 0) SELECT @dIncr = DATEADD(DAY, 1, @dIncr ) END
最後,按月對結果進行分組並將佔位符值插入到臨時表中:
insert #dates select dbo.FirstOfMonth(InsertDate) as Month, 0 as Trials, 0 as Sales from customer group by dbo.FirstOfMonth(InsertDate)
此解決方案允許建立一個填充一系列日期的臨時表,即使原始資料集中存在間隙也是如此。
以上是如何在SQL Server 2000中產生有資料空白的臨時日期表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!