Sql server 无法将where放入查询中
我正在尝试执行此任务: 查找每个客户的所有订单的总金额,按 从最大值到最小值,并向客户显示从40到 结果中有50个位置。只有一个查询 我正在训练Northwind样本数据库。我的问题是:Sql server 无法将where放入查询中,sql-server,Sql Server,我正在尝试执行此任务: 查找每个客户的所有订单的总金额,按 从最大值到最小值,并向客户显示从40到 结果中有50个位置。只有一个查询 我正在训练Northwind样本数据库。我的问题是: ;WITH MyCte AS ( SELECT ROW_NUMBER() OVER (ORDER BY SUM(OD.UnitPrice*OD.Quantity*(1-OD.Discount)) DESC) Number , O.CustomerID ,
;WITH MyCte AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY SUM(OD.UnitPrice*OD.Quantity*(1-OD.Discount)) DESC) Number
, O.CustomerID
, SUM(OD.UnitPrice*OD.Quantity*(1-OD.Discount)) TotalAmount
FROM [Order Details] OD
RIGHT JOIN Orders O ON OD.OrderID = O.OrderID
GROUP BY CustomerID
ORDER BY TotalAmount DESC
)
SELECT
Number
, CustomerID
, TotalAmount
FROM MyCte
WHERE Number BETWEEN 40 AND 50
但这不起作用。有人能帮我把这个问题的正确答案放在哪里吗
;WITH MyCte AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY SUM(OD.UnitPrice*OD.Quantity*(1-OD.Discount)) DESC) Number
, O.CustomerID
, SUM(OD.UnitPrice*OD.Quantity*(1-OD.Discount)) TotalAmount
FROM [Order Details] OD
RIGHT JOIN Orders O ON OD.OrderID = O.OrderID
GROUP BY CustomerID
)
SELECT
Number
, CustomerID
, TotalAmount
FROM MyCte
WHERE Number >= 40 and Number <= 50
主要的问题是在MyCTE表中按顺序排列。此查询将起作用。什么意思不起作用?你能提供样本数据、结果和预期结果吗?如果你已经知道答案,那么你为什么在这里发布这个问题?我在我的帖子尝试完成这个简单任务2分钟后发现了这个答案