這是一個艱難的。我有一個查詢返回可用的約會時間,如果他們以前不存在。這工作。但是我只想返回它們,如果它們在表中少於X次。不存在X次數量
例如:有一個醫生辦公室有3名醫生。因此,當天每個小時有3個可用的預約。我的查詢現在只返回1個可用約會。有任何想法嗎?我嘗試過使用COUNT,但無法使其工作。
你可以有點把它想:where not exist @Xtimes
這裏是提取avaibalble預約日期只有一名醫生查詢。
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)
)
)
whate engine are you use? (mysql sqlserver等) – gordatron