Как мне сделать сумму моей суммы в подзапросе для конкретных идентификаторов? - PullRequest
0 голосов
/ 28 апреля 2019

Я отчасти заблудился от того, как сделать сумму общих продаж в каждом регионе.Я попробовал все.

Я пытался сделать сумму в подзапросе, но я не могу сделать сумму этой суммы после

SELECT   Region.RegionDescription, sq1.[Total sales]
FROM [Order Details]od
INNER JOIN
(SELECT OrderID, SUM(UnitPrice*Quantity)AS [Total sales]
FROM [Order Details]
Group By OrderID)sq1 ON sq1.OrderID=od.OrderID
INNER JOIN
Orders ON od.OrderID = Orders.OrderID 
INNER JOIN
Employees ON Employees.EmployeeID=Orders.EmployeeID
INNER JOIN
EmployeeTerritories ON 
Employees.EmployeeID=EmployeeTerritories.EmployeeID
INNER JOIN
Territories ON Territories.TerritoryID = 
EmployeeTerritories.TerritoryID
INNER JOIN
Region ON Region.RegionID = Territories.RegionID
GROUP BY  Region.RegionDescription, sq1.[Total sales]

Я ожидаю увидеть каждый регион сих общий объем продаж

1 Ответ

0 голосов
/ 28 апреля 2019

Есть две вещи, которые вы могли бы сделать.

Удалить подзапрос

SELECT r.RegionDescription, SUM(od.UnitPrice * od.Quantity)
FROM [Order Details] od
INNER JOIN Orders o ON od.OrderID = o.OrderID
INNER JOIN Employees e ON e.EmployeeID=o.EmployeeID
INNER JOIN EmployeeTerritories et ON e.EmployeeID=et.EmployeeID
INNER JOIN Territories t ON t.TerritoryID = et.TerritoryID
INNER JOIN Region r ON r.RegionID = t.RegionID
GROUP BY r.RegionDescription

Сохранить подзапрос

SELECT r.RegionDescription, sum(sq1.[Total sales])
FROM (
    SELECT OrderID, SUM(UnitPrice*Quantity)AS [Total sales]
    FROM [Order Details]
    Group By OrderID
) sq1 ON sq1.OrderID=od.OrderID
INNER JOIN Orders o ON od.OrderID = o.OrderID 
INNER JOIN Employees e ON e.EmployeeID=o.EmployeeID
INNER JOIN EmployeeTerritories et ON e.EmployeeID=et.EmployeeID
INNER JOIN Territories t ON t.TerritoryID = et.TerritoryID
INNER JOIN Region r ON r.RegionID = t.RegionID
GROUP BY r.RegionDescription

Первый связывает подробные записи с остальными таблицами. Второй обобщает детали до уровня заказа, а затем объединяет с остальными таблицами. Я ожидаю, что производительность будет похожей. Вам придется самостоятельно проверить, какой из них работает быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...