我有下表:
编号 | 房间| 课程ID | 天(NUM) | 开始(时间) | 时间结束)
这是我坚持的大查询的一部分。如何在特定日期显示特定房间的课程之间没有时间休息的所有 id?有点卡在这里。我想我必须使用'ADDTIME()'函数来找出有0的课程1结束时间和课程2开始时间=>的差异。我已经看了很长时间了,我被卡住了!
如果您感兴趣的只是充分利用。如果一天是 7 小时(9-5 - 1 小时的午休时间),请称其为 420 分钟以使事情变得容易。然后 420 - Sum(MINUTE(TIMEDIFF(t2,t1)) = 0 表示房间已订满。
也许玩弄 CTE 可以帮助你。尝试从这样的事情开始
WITH RU_CTE AS (
SELECT your_fields
FROM RoomUtilization
WHERE day = @DayParameter
AND start = @startTimeParameter
UNION ALL
SELECT your_fields
FROM RoomUtilization RU
WHERE day = RU_CTE.day
AND start = RU_CTE.end
)
SELECT *
FROM RU_CTE
看看一些twiches是否满足您的需求
但正如 eggyal 所说,获取当天和房间的数据并在应用程序代码上解决这个问题可能更容易。