1

我有下表:

编号 | 房间| 课程ID | 天(NUM) | 开始(时间) | 时间结束)

这是我坚持的大查询的一部分。如何在特定日期显示特定房间的课程之间没有时间休息的所有 id?有点卡在这里。我想我必须使用'ADDTIME()'函数来找出有0的课程1结束时间和课程2开始时间=>的差异。我已经看了很长时间了,我被卡住了!

4

2 回答 2

2

如果您感兴趣的只是充分利用。如果一天是 7 小时(9-5 - 1 小时的午休时间),请称其为 420 分钟以使事情变得容易。然后 420 - Sum(MINUTE(TIMEDIFF(t2,t1)) = 0 表示房间已订满。

于 2012-04-25T17:13:33.353 回答
1

也许玩弄 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 所说,获取当天和房间的数据并在应用程序代码上解决这个问题可能更容易。

于 2012-04-25T17:21:01.110 回答