我的问题是我想将数量列与其相应的员工ID求和,但不允许我使用as重命名查询结果
这是我的查询:
SELECT Orders.OrderID,Orders.EmployeeID,[Order Details].Quantity
FROM Orders INNER JOIN DimEmployee
ON Orders.EmployeeID=DimEmployee.EmployeeID
INNER JOIN [Order Details]
ON [Order Details].OrderID=Orders.OrderID
这不让我说:
AS name (query)
or (query) AS name
为了让我使用另一个选择查询,例如:
SELECT SUM([Orders Detail].Quantity) FROM queryResult Group By Orders.EmployeeID
答案 0 :(得分:2)
尝试一下:
&response-content-type=application%2Fpdf
答案 1 :(得分:2)
类似的东西应该给您您想要的。
SELECT
Orders.EmployeeID AS EmployeeID,
SUM([Order Details].Quantity) AS TotalQty
FROM Orders
INNER JOIN DimEmployee
ON Orders.EmployeeID=DimEmployee.EmployeeID
INNER JOIN [Order Details]
ON [Order Details].OrderID=Orders.OrderID
GROUP BY
Orders.EmployeeID
答案 2 :(得分:1)
您可以使用直接聚合或使用窗口函数返回所有详细信息来执行此操作。 如果您不希望将结果分组到该级别,则可能需要从OrderID
列表中删除SELECT
和GROUP BY
。
SELECT
Orders.OrderID,
Orders.EmployeeID,
EmpTotal = SUM([Order Details].Quantity)
FROM Orders
INNER JOIN DimEmployee
ON Orders.EmployeeID=DimEmployee.EmployeeID
INNER JOIN [Order Details]
ON [Order Details].OrderID=Orders.OrderID
GROUP BY
Orders.OrderID,
Orders.EmployeeID
SELECT
Orders.OrderID,
Orders.EmployeeID,
PartitionedTotal = SUM([Order Details].Quantity) OVER (PARTITION BY Orders.EmployeeID, Orders.OrderID) --here you may only want to partition by the EmployeeID instead of both
FROM Orders
INNER JOIN DimEmployee
ON Orders.EmployeeID=DimEmployee.EmployeeID
INNER JOIN [Order Details]
ON [Order Details].OrderID=Orders.OrderID