2011-11-26 84 views
-5

我有下一個問題: 紐約每家酒店最常見的房型是什麼?mySQL。房間的最新預訂類型

表:

1. Hotel - city, hotelNo[primarykey] 
2. Room - roomNo[primarykey], type, hotelNo[foreignkey] 
3. Booking - roomNo[foreignkey], hotelNo[foreignkey] 

所以,讓我們說我有3家城市和我需要的列來獲取表:--------

NumberOfBookings, MostBookedType, HotelName 

任何建議?提前致謝!

這裏是我的代碼:

SELECT type, r.hotelNo, r.roomNo 
FROM room r 
INNER JOIN booking b ON r.roomNo=b.roomNo 
WHERE r.hotelNo = ANY 
(
    SELECT hotelNo 
    FROM hotel 
    WHERE city = "New York" 
) 

它顯示房間的類型,沒有酒店,以及roomNo有史以來在紐約的酒店預訂。

我需要找出如何創建一個表,示類型(這是大部分預訂),numberOfBookings hotelNo(最預訂類型),

+0

有點。除此之外,我完成了所有的任務。 Stucked here>< – vikingmaster

+0

你堅持什麼部分?請向我們展示您迄今爲止的代碼。 –

+0

在問題中添加了代碼。 – vikingmaster

回答

1
select 
     hotel.city HotelName, 
     room.type BookedType, 
     count(*) NumberOfBookings 
    from 
     Booking B 
     join Hotel 
      on B.HotelNo = Hotel.HotelNo 
     join Room 
      on B.HotelNo = Room.HotelNo 
      AND B.RoomNo = room.RoomNo 
    group by 
     B.HotelNo, 
     room.Type 
    order by 
     count(*) desc 

(的房間類型)現在,這個例程可以從酒店A首先拉大號牀,從Hotel X第二號乘坐雙人牀,從酒店乘坐第三號乘坐雙人牀,以及從酒店乘坐第四號乘坐國王...因爲看起來您特別希望每間酒店和房間類型...

我會確保你有一個基於(HotelNo,RoomNo)的預訂表上的索引來幫助優化組...

+0

謝謝,它幫助了我!現在我有一個想法如何完成任務。 – vikingmaster