SQL выберите группу ошибку: поле не содержится в статистической функции или группы by пункт
SELECT a.userName, productType, MAX(TotalSales) FROM( SELECT U.Name AS userName, SP.Type AS productType, SUM(SP.Price) AS TotalSales FROM [SaleProduct] SP JOIN [Sale] S ON SP.SaleId = S.SaleId JOIN [User] U ON U.UserId = S.UserId GROUP BY SP.Type, U.UserName) AS a GROUP BY productType, a.userName )
дать мне
Name| Product-Type | Sales XYZ | Laptops| 999 ABC | Desktop| 888 ABC | Servers|777 XYZ | Servers|555
Я хочу:
Name| Product Type|Sales XYZ |Laptops| 999 ABC |Desktop| 888 ABC |Servers|777
Если мне нужно только вернуть массив выше ( ABC, имеющий наибольший общий объем продаж серверов), как я должен написать запрос ?
Приведенный ниже запрос работает , ожидайте , что мне все еще нужно вернуть "имя" из внешнего запроса (но, объединив имя и включив его во внешний запрос, он также вернет XYZ с общим объемом продаж 555. Как это сделать ?
Что я уже пробовал:
SELECT productType, MAX(TotalSales) FROM( SELECT U.Name AS userName, SP.Type AS productType, SUM(SP.Price) AS TotalSales FROM [SaleProduct] SP JOIN [Sale] S ON SP.SaleId = S.SaleId JOIN [User] U ON U.UserId = S.UserId GROUP BY SP.Type, U.Name) AS a GROUP BY productType )
приведенный выше запрос работает ожидайте что мне все еще нужно вернуть имя из внешнего запроса SELECT
как это сделать ?
Bryian Tan
Что??? не совсем понятно, о чем ваш вопрос и недостаточно информации. Может быть, вы хотите включить столбец "мой" в свой последний запрос?
SELECT my, productType, MAX(TotalSales) FROM( SELECT U.UserName AS my, SP.Type AS productType, SUM(SP.Price) AS TotalSales FROM [SaleProduct] SP JOIN [Sale] S ON SP.SaleId = S.SaleId JOIN [User] U ON U.UserId = S.UserId GROUP BY SP.Type, U.UserName) AS a GROUP BY my, productType
CHill60
Я думаю, что у меня есть решение, которое вам нужно, но серверы сейчас немного заняты. Я попробую еще раз позже