Я новичок в подзапросах, и теперь корреляция пытается понять проблему.Возможные корреляционные подзапросы
У меня есть запрос:
SELECT Sales.SalesOrderHeader.CustomerID, SUM(Sales.SalesOrderDetail.LineTotal)
FROM Sales.SalesOrderDetail
INNER JOIN Sales.SalesOrderHeader
ON Sales.SalesOrderDetail.SalesOrderID = Sales.SalesOrderHeader.SalesOrderID
GROUP BY Sales.SalesOrderHeader.CustomerID;
Я пытаюсь переписать запрос с использованием подзапроса корреляции:
SELECT Sales.SalesOrderHeader.CustomerID,
(SELECT SUM(Sales.SalesOrderDetail.LineTotal)
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderDetail.SalesOrderID)
FROM Sales.SalesOrderHeader
GROUP BY Sales.SalesOrderHeader.CustomerID;
У меня есть следующее сообщение об ошибке, и я не понимаю, что мне нужно исправить:
Подзапрос возвратил более 1 значения. Это недопустимо, если подзапрос следует за =,! =, <, < =,>,> = или когда подзапрос используется как выражение.
Также будет хорошо, если будет предлагать различные варианты корреляции с исходным запросом. Хорошего дня.
Вместо этого вместо этого перешло 31465 строк 19119. –
Если вас интересует, вы можете скачать базу данных здесь. https://msftdbprodsamples.codeplex.com/downloads/get/880661 –
31349 полученных строк. –