我正在使用SQLite數據庫,並且有三個表格來描述建築物,房間和計劃事件。SQL - 查找計劃中的開放空間
的表是這樣的:
- 建築物(ID,姓名)
- 房間(ID,BuildingID,號碼)
- 事件(ID,BuildingID,RoomID,天,S_TIME,e_time)
因此,每個事件都與建築物和房間相關聯。列Days包含一個整數,它是與一週中的天數對應的素數的乘積(值爲21表示事件發生在星期二= 3和星期四= 7)。
我希望能夠找到一種方法來生成特定建築物中的房間報告,該建築物將在未來幾個小時內開放,以及這些房屋將會開放多久。
這是我到目前爲止有:
SELECT Rooms.Number
FROM Rooms
INNER JOIN Buildings on (Rooms.BuildingID = Buildings.ID)
WHERE
Buildings.Name = "BuildingName"
EXCEPT
SELECT Events.RoomID
FROM Events
INNER JOIN Buildings on (Events.BuildingID = Buildings.ID)
WHERE
Buildings.Name = "BuildingName" AND
Events.days & 11 = 0 AND
time("now", "localtime" BETWEEN events.s_time AND events.e_time;
我在這裏找到所有客房特定建築物,然後我取出室,目前已在進展調度的事件。
我期待着所有有用的提示/評論。
>列Days包含一個整數,它是與一週中的天數相對應的素數的乘積(值23表示事件發生在星期二= 3和星期四= 7)。 是不是3和7的乘積是21?我對你的方法感到困惑。 – stefgosselin 2011-05-27 15:50:03
是的感謝捕捉。 – gjarzab 2011-05-27 15:52:11
近似dup:http://stackoverflow.com/questions/6018445/get-list-with-start-and-end-values-from-table-of-datetimes – 2011-05-27 16:24:06