いくつかのスケジューリング機能を備えたアプリに取り組んでいます。その一環として、特定の期間に予定されている人のリストと、その人が何かを予定しているかどうかを選択する必要があります。
週の期間数は可変であるため、次のように参照テーブルに格納されます。
Period Reference Table
id name start end day
------------------------------------------------------------------
1 Morning 1900-01-01 4:00:00 1900-01-01 11:00:00 MON
2 Afternoon 1900-01-01 14:00:00 1900-01-01 20:00:00 MON
3 Night 1900-01-01 20:00:00 1900-01-01 24:00:00 MON
4 Morning 1900-01-01 4:00:00 1900-01-01 11:00:00 TUE
5 Afternoon 1900-01-01 14:00:00 1900-01-01 20:00:00 TUE
6 Night 1900-01-01 20:00:00 1900-01-01 24:00:00 TUE
「個人参照」テーブルと「個人スケジュール」テーブルもあります。「個人スケジュール」テーブルには、ある期間に何かがスケジュールされている場合にのみレコードが格納されます。簡単な例を次に示します。
Person Schedule Table
id person_id period_id
------------------------------
1 1 2
2 1 3
3 2 2
4 2 3
5 2 4
次に、これら3つの表から、各人の期間の完全なリストと、その期間にスケジュールレコードがあるかどうか(1または0)を選択する必要があります。つまり、上記のサンプルデータの結果セットを取得する必要があります。
person_id period_id is_scheduled
----------------------------------------
1 1 0
1 2 1
1 3 1
1 4 0
1 5 0
1 6 0
2 1 0
2 2 1
2 3 1
2 4 1
2 5 0
2 6 0
動的SQLに入らずにselectステートメントでこれを行うことは可能ですか?
これはすべてSQLServer2000を使用して行われます