ホームページ > データベース > mysql チュートリアル > データにギャップがある SQL Server 2000 で一時的な日付テーブルを生成するにはどうすればよいですか?

データにギャップがある SQL Server 2000 で一時的な日付テーブルを生成するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-28 15:35:22
オリジナル
208 人が閲覧しました

How to Generate a Temporary Date Table in SQL Server 2000 with Gaps in Data?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート