0
Я хочу отобразить имя клиента, если общая цена выше средней цены за каждую транзакцию. Но сообщение об ошибке «Столбец x.average» недопустим в предложении HAVING, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY ». и я не знаю, где проблемы.Как отобразить имя клиента для каждой транзакции с общей ценой выше средней цены?
Вот мой код
SELECT c.CustomerId,
hs.TransactionId,
c.CustomerName,
SUM(t.Price) AS [Total Price]
FROM MsCustomer c JOIN HeaderSalonServices hs
ON c.CustomerId = hs.CustomerId
JOIN DetailSalonServices ds
ON ds.TransactionId = hs.TransactionId
JOIN MsTreatment t
ON t.TreatmentId = ds.TreatmentId,
(SELECT AVG(Price) AS average
FROM MsTreatment) AS x
GROUP BY c.CustomerId, hs.TransactionId, c.CustomerName
HAVING SUM(t.Price) > average
среднее определяется только внутри подзапроса, а просто использовать переименованный «х». ;-) – flowtron
См. Http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple -SQL-запрос – Strawberry