SQL Server添加计数

SQL Server添加计数,sql,sql-server,Sql,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

我正在处理一个查询,我得到了预期的结果,但它们没有相加

我的问题

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
基本上,我希望每个楼层的房间都能加起来,任何帮助都会很好。

如果您希望输出中的楼层,请按它分组:

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层。

如果您希望在输出中显示楼层,请按其分组:

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层。

太棒了!谢谢你们,你们假设酒店只有三层楼:棒极了!谢谢您,您认为正确的酒店只有3层: