不同的房型

时间:2011-03-28 14:47:06

标签: sql sql-server

如何更改SQL以向我提供distinct个房间类型?我只希望每roomtype_idroom_id。如果那有意义的话?基本上如果有3个不同类型的5个房间,只有3个记录应该回来。

以下是当前SQL的一个例子......

SELECT dbo.rooms.room_id,dbo.roomtypes.name, dbo.rooms.roomtype_id  
FROM dbo.rooms INNER JOIN dbo.roomtypes ON dbo.rooms.roomtype_id = dbo.roomtypes.roomtype_id     
WHERE
 (dbo.rooms.room_id NOT IN (SELECT
 room_id FROM dbo.booking))  
AND( dbo.rooms.roomtype_id >= 4)

2 个答案:

答案 0 :(得分:2)

使用DISTINCT是另一种选择:

SELECT DISTINCT dbo.rooms.roomtype_id
FROM dbo.rooms INNER JOIN dbo.roomtypes ON dbo.rooms.roomtype_id = dbo.roomtypes.roomtype_id
WHERE (dbo.rooms.room_id NOT IN (SELECT room_id FROM dbo.booking))
AND( dbo.rooms.roomtype_id >= 4)

答案 1 :(得分:1)

一种方法是GROUP BY

SELECT MAX(dbo.rooms.room_id),MAX(dbo.roomtypes.name), dbo.rooms.roomtype_id
FROM dbo.rooms INNER JOIN dbo.roomtypes ON dbo.rooms.roomtype_id = dbo.roomtypes.roomtype_id
WHERE (dbo.rooms.room_id NOT IN (SELECT room_id FROM dbo.booking))
AND( dbo.rooms.roomtype_id >= 4)
GROUP BY dbo.rooms.roomtype_id