Kip*_*Kip 2 sql-server syntax subquery
我正在使用SQL Server 2005,我想查询产生最多收入的供应商,按供应商的名称排序.以下是我试过的查询.内部子查询获得按收入排序的15个最大供应商,我尝试按供应商名称订购这些结果.
SELECT Revenue, VendorName
FROM (
SELECT TOP 15
SUM(po.POTotal) AS Revenue
, Vendors.VendorName AS VendorName
FROM PurchaseOrders po
INNER JOIN Vendors ON po.Vendor_ID = Vendors.Vendor_ID
WHERE ...
GROUP BY Vendors.VendorName
ORDER BY Revenue DESC
)
ORDER BY VendorName ASC
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误信息:
消息156,级别15,状态1,行14
关键字"ORDER"附近的语法不正确.
还有另一种方法吗?我认为这可能是一种观点,但我宁愿不这样做.
如果这是重复的话我很抱歉,我甚至不知道要搜索什么,看看是否已经被问过.
为子查询添加别名:
SELECT Revenue, VendorName
FROM (SELECT TOP 15
SUM(po.POTotal) AS Revenue,
v.VendorName AS VendorName
FROM PurchaseOrders po
JOIN Vendors v
ON po.Vendor_ID = v.Vendor_ID
WHERE ...
GROUP BY v.VendorName
ORDER BY Revenue DESC) Z
ORDER BY VendorName ASC
Run Code Online (Sandbox Code Playgroud)
您需要为派生表提供别名:
...
ORDER BY Revenue DESC
) AS DerivedTable
ORDER BY VendorName;
Run Code Online (Sandbox Code Playgroud)