Я пытаюсь обернуть голову вокруг подзапросов (коррелированных). Хотя в книге объясняется (MS SQL Server 2012), я все еще немного запутался. Используя три таблицы, Заказы, Продукты и Детали заказа, я хочу найти сумму всех продуктов, которые были отправлены в США. Я придумал следующий запрос, но не совсем понимаю, как я туда попал, кроме того, что корреляция ссылается на «где» во внешнем запросе. Может кто-то исправить мою работу и предложить лучшее объяснение, чем книгу?Является ли этот коррелированный SubQuery правильным
SELECT p.productid, p.productname, SUM(qty * od.unitprice) AS TotalAmount
FROM Production.Products AS p
JOIN Sales.OrderDetails AS od
ON p.productid = od.productid
WHERE N'USA' IN
(SELECT o.shipcountry
FROM Sales.Orders AS o
JOIN Sales.OrderDetails AS od
ON o.orderid = od.orderid
WHERE shipcountry = N'USA')
GROUP BY p.productid, p.productname;
Вам не нужен подзапрос. – Merenix
Я согласен с тем, почему я смущен, книга (TSQL-2012) дает такую проблему. Другой вопрос, который у меня есть, это внешний запрос и подзапрос, которые должны быть зависимы друг от друга. – allendks45