我需要列出第1天没有预订的房间
我试过了
select HotelRooms
from tblRoom
Where Day <> 1
这显示我在不等于2的日子里使用的房间。但我有一些房间在第1天,第2天和第3天使用,因此这些房间仍然显示。
我已经搜索过并试图弄清楚数小时,所以任何帮助都会受到赞赏。
答案 0 :(得分:3)
SELECT a.Rooms
FROM tblRooms a
WHERE NOT EXISTS
(
SELECT b.Rooms
FROM tblRooms b
WHERE a.Rooms = b.Rooms AND
b.Day = 1
)
记录可能与您的记录不同,但查询的想法或想法仍然相同。
假设您有此记录,
╔═══════╦═════╗
║ ROOMS ║ DAY ║
╠═══════╬═════╣
║ 1 ║ 1 ║
║ 1 ║ 2 ║
║ 2 ║ 2 ║
║ 3 ║ 3 ║
║ 4 ║ 1 ║
║ 4 ║ 2 ║
║ 4 ║ 3 ║
╚═══════╩═════╝
上面查询的OUTPUT是
╔═══════╗
║ ROOMS ║
╠═══════╣
║ 2 ║
║ 3 ║
╚═══════╝
答案 1 :(得分:1)
我喜欢NOT EXISTS
方法,但您也可以使用NOT IN
:
SELECT Rooms
FROM tblRooms
WHERE Rooms NOT IN (
SELECT Rooms
FROM tblRooms
WHERE day = 1)
或者我喜欢什么,加入表格并使用NULL
检查LEFT JOIN
:
SELECT a.Rooms
FROM tblRooms a
LEFT JOIN tblRooms a2 On a.Rooms = a2.Rooms And a2.Day = 1
WHERE a2.Rooms Is NULL