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 ループを使用してテーブルに値を追加します。終了日に達するまで日付を 1 日ずつ増やします:
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 中国語 Web サイトの他の関連記事を参照してください。