【发布时间】:2020-10-14 00:00:52
【问题描述】:
我从几个不同的表中提取了数据,以提供以下示例数据。为简单起见,示例数据仅显示一个 OrderID。我需要做的是获取 OrderID 的最高价格行,但我还需要查看与该特定行关联的其他 ID,如下面的所需结果表所示。有什么办法可以实现吗?
我正在用 SQL 为这些数据创建一个视图,如果可能的话,我想在一个视图中完成所有操作。
当前代码
SELECT Items.OrderID, Items.ItemID, Items.Code, Price.Price
FROM Items LEFT OUTER JOIN
Codes ON Items.Code = Codes.Code LEFT OUTER JOIN
ItemCategories ON Codes.CategoryID = ItemCategories.CategoryID LEFT OUTER JOIN
Price ON Codes.CodeGrouping = Price.CodeGrouping
WHERE (YEAR(Items.Date) = YEAR(GETDATE()) OR
YEAR(Items.Date) = YEAR(GETDATE()) - 1) AND (ItemCategories.CategoryID = 1) AND (Items.OrderID_Status = 3)
样本数据
OrderID ItemID Code Price
--------------------------------------
454646 429264 12121 833
454646 429677 6116 1
454646 431168 194 719
454646 431248 6078 1
454646 432023 455 1030
期望的结果
OrderID ItemID Code Max_Price
-----------------------------------------------------
454646 432023 455 1030
提前致谢!
【问题讨论】:
-
您能否发布您运行的查询以获取此结果?
-
现在添加了当前代码
标签: sql sql-server sql-server-2008 select greatest-n-per-group