我从以下查询中获取Syntax error near 'ORDER':

SELECT i.ItemID, i.Description, v.VendorItemID
FROM Items i
JOIN ItemVendors v ON
    v.RecordID = (
                 SELECT TOP 1 RecordID
                 FROM ItemVendors iv
                 WHERE
                     iv.VendorID = i.VendorID AND
                     iv.ParentRecordID = i.RecordID
                 ORDER BY RecordID DESC
                 );

如果删除ORDER BY子句,查询运行正常,但不幸的是,必须从降序列表中拉出而不是升序。我找到的与此相关的所有答案都表明必须使用TOP,但在这种情况下,我已经在使用它。当不属于子查询的一部分时,TOPORDER BY没有任何问题。有任何想法吗?

最佳答案

我会用max而不是前1个...

选择i.ItemID,i.Description,v.VendorItemID
从项目我
加入ItemVendors v ON
v.RecordID =(
SELECT max(记录ID)
从ItemVendors iv
哪里
iv.VendorID = i.VendorID AND
iv.ParentRecordID = i.RecordID);

10-08 02:21