SQL Server 2008 R2 には、注文が特定のステータスにあった日数 (DaysInStatus) を含むテーブル (StatDays) があります。このテーブルに書き込むプロセスがなかった日曜日を除いて、注文がそのステータスのままだった日ごとにエントリがあります。その場合、注文は月曜日に再び表示され、DaysInStatus は 2 日進んでいます。
私の問題は、不足している日曜日の値を入力する方法です。(注文に土曜日のエントリがあり、月曜日のエントリがない場合、その土曜日が最後のデータ ポイントであると想定しています。)
例:
OrderID StatDate DaysInStatus A11111 2012 年 6 月 1 日 20 A11111 2012 年 6 月 2 日 21 A11111 2012 年 6 月 4 日 23 A11111 2012 年 6 月 5 日 24 A11111 2012 年 6 月 6 日 25 A11111 2012 年 6 月 7 日 26 A11111 2012 年 6 月 8 日 27 A11111 2012 年 6 月 9 日 28 A11111 2012 年 6 月 11 日 30
ここでは、これらすべての値に加えて、欠落している日付 6/3 と 6/10 (DaysInStatus がそれぞれ 22 と 29 に進んでいる) と OrderID を別のテーブルに挿入 (または選択) したいと思います。
また、OrderID は、DaysInStatus = 1 でこのテーブルに常に表示されるとは限りません。ほぼすべての値で表示され、ほとんどすべての値でドロップアウトされます。
日付テーブルを生成してから、statDate と StatDate+1、StatDate-1 で StatDays への左外部結合を試みました。これは小さなレコードセットでは機能しますが、実際のテーブルには 1 億を超えるレコードがあるため、これはうまくいきません。
提案をお寄せいただきありがとうございます!