Serverで日付の範囲を生成する方法タイトルは、私が言っていることを完全には捉えておらず、これは重複しているかもしれません。長いバージョンは次のとおりです。ゲストの名前、登録日、チェックアウト日が指定されている場合、ゲストである日ごとに1行を生成するにはどうすればよいですか例:ボブは7/14にチェックインし、7/17を離れます。7/17)私の結果として。1この特定の目的のために、以下のクエリは専用のルックアップテーブルを使用するのとほぼ同じくらい効率的であると主張します。2011-07-17おそらく、単一のメンバーではなく、セットとしてこれが必要になるので、この手法を適応させる方法を以下に示します。2011-07-19@Demsが指摘したように、これは次のように簡略化できます。2私は通常、いくつかのテーブルでrow_number()を使用するトリックでこれを行います。t.end_date)seqの計算は、計算も順序付けも必要ないため、非常に高速です。テーブルがすべての期間に十分な大きさであることを確認する必要があります。3「Tally」または「Numbers」テーブルがある場合、このようなことは非常に簡単です。DATEDIFF(dd,RegistrationDate,CheckoutDate);「集計」テーブルを作成する方法は次のとおりです。PUBLIC;GOSQLの「タリー」テーブルの詳細と、Whileループとカウントされる再帰CTEの「隠されたRBAR」を置き換えるために使用する方法の詳細については、次の記事を参照してください。5追加のレコードを作成し、チェックアウト時に実行するトリガーを作成します。毎日同じ深夜ジョブを実行することもできます(データベースに最新情報が必要な場合)。