2014-09-30 2 views
1

Я работаю на запрос, и я получаю результат, как предполагалось, но они не сложениемSQL Server Добавление Прикинь

мой запрос

SELECT SUBSTRING(h.HotelName, 1, CHARINDEX(' ', h.HotelName)) AS 'HotelName',  LEFT(r.RoomNumber, 1) AS Floor, COUNT(*) AS 'Rooms' 
FROM HOTEL AS h 
JOIN HOTELROOMTYPE AS hr ON h.HotelID = hr.HotelID 
JOIN ROOM AS r ON hr.HotelRoomTypeID = r.HotelRoomTypeID 
GROUP BY r.RoomNumber, h.HotelName 

Мои результаты

HotelName      Floor Rooms 
------------------------------ ----- ----------- 
John's       2  1 
John's       2  1 
John's       3  1 
University      1  1 
University      1  1 
University      2  1 
University      2  1 
University      2  1 
Utah       2  1 
Utah       2  1 
Utah       2  1 

Планируемые результаты

HotelName      Floor Rooms 
------------------------------ ----- ----------- 
John's       2  2 
John's       3  1 
University      1  2 
University      2  3 
Utah       2  3 

В основном я хочу, чтобы Комнаты для каждого пола были добавлены, любая помощь была бы замечательной.

ответ

4

Если вы хотите, floor на выходе, то группа им:

SELECT SUBSTRING(h.HotelName, 1, CHARINDEX(' ', h.HotelName)) AS HotelName, 
     LEFT(r.RoomNumber, 1) AS Floor, COUNT(*) AS 'Rooms' 
FROM HOTEL h JOIN 
    HOTELROOMTYPE hr 
    ON h.HotelID = hr.HotelID JOIN 
    ROOM r 
    ON hr.HotelRoomTypeID = r.HotelRoomTypeID 
GROUP BY h.HotelName, LEFT(r.RoomNumber, 1); 

Я полагаю, ни один из ваших отелей более 9 этажей.

+0

Удивительно работало! Спасибо, и вы предполагали, что у правого отеля всего 3 этажа :) – SaSquadge

Смежные вопросы