2012-05-26 16 views
0

我有以下表格结构,我希望从预订表中统计所有房间类型。 我想有这样的事情: 房型:双人3 :简单5 有可能做到这一点?按房间类型划分的SQL计数

enter image description here

我只设法计从预订表的所有客房

SELECT COUNT(Room_ID)AS NumarRezervari FROM dbo.Reservation WHERE MONTH(Data_Check_in)=5

回答

2
SELECT Room_Type, COUNT(*) AS NumarRezervari 
FROM dbo.Reservation re 
JOIN dbo.Room ro ON ro.RoomID = re.RoomID 
JOIN dbo.Room_Type rt ON rt.Room_Type_ID = ro.Room_Type_ID 
WHERE MONTH(re.Data_Check_in) = 5 
GROUP BY Room_Type 
1

你需要使用一个GROUP BY条款和几个连接,就像这样:

SELECT Room_Type, count(*) FROM Reservation rv 
INNER JOIN Room rm ON rm.Room_ID = rv.Room_ID 
INNER JOIN Room_Type rt ON rm.RoomType_ID = rt.RoomType_ID 
GROUP BY Room_Type 
+0

谢谢你,这是我所需要的 – jonny

1

如果您想要计算amo没有房间类型,我认为你可以做这样的事情:

select count (Room_Type_Id) from Room_Type 
inner join Room on Room.Room_Type_ID = Room_Type.RoomType_ID 
inner join Reservation on Reservation.Room_ID = Room.RoomID 
where ...