2012-03-20 54 views
0

增加值我有两个表:SQL查询:选择从一个表中的条目,并从另一个

酒店和hotel_rooms

我试图得到一个表与酒店的名字和免费客房。

SELECT h.Hotelname, r.FreeRooms 
FROM hotel h 
INNER JOIN hotel_room r ON r.H_ID = h.H_ID 
WHERE r.H_ID = h.H_ID 

让我像

Hotel1 27 
Hotel1 14 
Hotel1 9 
Hotel2 7 
Hotel2 21 

但我真正想要的是添加所有这些值,所以我得到:

Hotel1 50 
Hotel2 28 

我希望有人能帮助我

+0

你正在寻找一个'LEFT JOIN ......其中r [某些值] IS NULL' – swasheck 2012-03-20 16:11:31

+2

你'WHERE'条款似乎相当多余。 – Wiseguy 2012-03-20 16:13:24

+0

我的误解。我没有意识到这是免费房间的总数。我虽然认为房间号是房间号(所以我认为你是在寻找每间酒店的免费房间)。 – swasheck 2012-03-20 16:14:42

回答

4

您需要Sum()您的结果:

SELECT h.Hotelname, Sum(r.FreeRooms) as FreeRooms 
FROM hotel h 
INNER JOIN hotel_room r 
    ON r.H_ID = h.H_ID 
GROUP BY h.Hotelname 
1

试试这个:

SELECT h.Hotelname, 
     Sum(r.FreeRooms) as Total 
FROM hotel h 
     INNER JOIN hotel_room r 
     ON r.H_ID = h.H_ID 
GROUP BY h.Hotelname 
+0

WHERE子句无用,请参阅INNER JOIN – fancyPants 2012-03-20 16:24:32

+0

@tombom在发布之前,我已经对其进行了编辑 - 但谢谢! – Bridge 2012-03-20 16:25:48

相关问题