这是困难的一个。我有一个查询,如果它们以前不存在,则返回可用的约会时间。这行得通。但是,如果它们在表中的次数少于 X 次,我只想返回它们。
例如:有一个医生办公室,有 3 名医生。因此,一天中的每个小时都有 3 个可用的约会。我的查询现在只返回 1 个可用的约会。有任何想法吗?我尝试使用 COUNT 但无法使其正常工作。
你可以这样想:where not exist @Xtimes
这是仅检索一位医生的可用预约日期的查询。
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)
)
)