2016-05-27 2 views
0

Я работал над вопросом, который задал мне, чтобы найти общую стоимость гостиничной сети, используя подзапрос и группируя их по гостинице. В настоящее время у меня есть следующее, которое, похоже, вообще не работает и получает сообщение об ошибке.SUM и GROUP BY Использование подзапроса

SELECT MAX(roomPrice) AS 'Total Room Price' 
FROM room 
WHERE IN 
(SELECT roomPrice, SUM(roomPrice) AS 'TotalRoomCost' FROM room GROUP BY hotel); 

Любая помощь будет оценена

Screenshot of the Tables

ответ

0

Пожалуйста, измените имена столбцов, как это не показано на прилагаемом скриншоте.

SELECT 
    H.Name AS HotelName, 
    SUM(R.roomPrice) AS 'Total Room Price' 
FROM room AS R 
INNER JOIN hotel AS H 
ON R.HotelID=H.HotelID 
GROUP BY H.Name 
+0

Это должно быть сделано как подзапрос, как указано в исходном вопросе, а не внутренним соединением. – StuartH

2

Простым решением является выбор из подзапроса.

Я думаю, что из вашего описания вы хотите суммировать все цены на номера для каждого отеля и получить максимальную общую стоимость номера от всех отдельных отелей. Если это так:

SELECT MAX(TotalRoomCost) AS 'Total Room Price' 
FROM 
(
SELECT hotel, SUM(roomPrice) AS TotalRoomCost FROM room GROUP BY hotel 
) sub0;