これは大変なことです。以前に存在しない場合に利用可能な予約時間を返すクエリがあります。これは機能します。ただし、テーブルにあるのがX回未満の場合にのみ返したいと思います。
例: 3 人の医師がいる診療所があります。したがって、1 日の 1 時間ごとに 3 つの予約が可能です。私のクエリは現在、利用可能な予定が 1 つしか返されません。何か案は?COUNT を使用してみましたが、これを機能させることができませんでした。
次のように考えることができます。where not exist @Xtimes
以下は、1 人の医師のみの利用可能な予約日を取得するためのクエリです。
SELECT * FROM TimeScheduleTable WHERE
NOT Exists (SELECT EmployeeId FROM AppointmentTable
WHERE EmployeeId= @pEmployeeId AND
CONVERT(VARCHAR,AppointmentTable.ToDateTime , 101) = @pDate AND
(
(CONVERT(VARCHAR(8), AppointmentTable.ToDateTime, 108) >= TimeScheduleTable.StartTime AND
CONVERT(VARCHAR(8), AppointmentTable.ToDateTime, 108) <= TimeScheduleTable.EndTime)
OR
(CONVERT(VARCHAR(8), AppointmentTable.ToDateTime, 108) >= TimeScheduleTable.StartTime AND
CONVERT(VARCHAR(8), AppointmentTable.ToDateTime, 108) <= TimeScheduleTable.EndTime)
OR
(CONVERT(VARCHAR(8), AppointmentTable.ToDateTime, 108)<= TimeScheduleTable.StartTime AND
CONVERT(VARCHAR(8), AppointmentTable.ToDateTime, 108) >= TimeScheduleTable.EndTime)
)
)