SQL сервер 2008
Hello
вот мой запрос, который возвращает результат
SELECT * FROM Rooms
WHERE RoomID in
(SELECT t1.RoomId FROM
(Rooms t1 INNER JOIN
(SELECT RoomID, SUM(quantity) AS QTY FROM Room_Item GROUP BY RoomID
HAVING SUM(Quantity) = 0) t2 ON t1.RoomID = t2.RoomID))
выше письменный запрос вернет мне номер комнаты, в которой нет предметов (количество = 0),
но теперь я хочу отфильтровать результат по зданиям,
я получил список комнат для конкретного здания, как показано ниже
select roomid from rooms where buildingblockid in (select buidingblockid from buildingblock where buildigID = 1)
поэтому мой запрос будет
вернуть идентификатор комнаты из таблицы комнат, где выделено элементов 0 и отфильтровать комнату по номеру здания = 1
структура таблиц такая, как показано ниже - показаны только основные поля
rooms => roomid(PK), buildingblockID(FK), roomname
room_item => roomitemid(PK), roomid(FK), itemid(FK), quantity
item => itemid(PK), itemname
buildingblock => buildingblockid(PK), buildingID(FK)
building => buildingID(PK), buildingName