我正在尝试编写一个查询,我在OrderTable中选择特定订单的最新更改 离。
OrderID| ChangeDate |
-------|-----------------------|
Order1 |2013-03-17 14:40:47.000|
Order2 |2013-03-12 12:34:09.000|
Order3 |2013-03-20 18:30:12.000|
Order1 |2013-03-20 16:09:09.000|
Order2 |2013-03-20 12:39:49.000|
说(从上面的示例中),我需要的是Order1,Order2和Order3的最新条目。 有没有人处于类似的情况? 我非常感谢你的帮助!
答案 0 :(得分:0)
试试这个:
Select OrderID,max(ChangeDate) as LatestDate
from yourTable
group by OrderID
答案 1 :(得分:0)
有多种方法,但假设您想要整个记录,而不仅仅是每个订单ID max( date)
,您可以使用row_number。
WITH CTE
(
SELECT
OrderID,
changeDate,
ChangeValue,
ROW_NUMBER() OVer (Partition BY OrderID order by ChangeDate Desc) rn
FROM order
)
SELECT * FROM CTE where rn = 1
注意:每个订单只返回一条记录。如果您有最大更改日期的平局
,这可能是也可能不是问题答案 2 :(得分:0)
你可以这样做:
SELECT OrderID,
MAX(ChangeDate) as LatestEntry
FROM yourTable
GROUP BY OrderID