Sql server 无法将where放入查询中

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 ,

我正在尝试执行此任务:

查找每个客户的所有订单的总金额,按 从最大值到最小值,并向客户显示从40到 结果中有50个位置。只有一个查询

我正在训练Northwind样本数据库。我的问题是:

;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分钟后发现了这个答案