Sql 仅过滤订单的最新条目

Sql 仅过滤订单的最新条目,sql,sql-server,reporting-services,where,Sql,Sql Server,Reporting Services,Where,我正在尝试编写一个查询,在其中选择OrderTable中特定订单的最新更改 前 比如(从上面的例子中),我需要的是Order1、Order2和Order3的最新条目。 有没有人遇到过类似的情况? 我真的非常感谢你的帮助 试试这个: Select OrderID,max(ChangeDate) as LatestDate from yourTable group by OrderID 有多种方法,但假设您需要整个记录,而不仅仅是每个订单id的max(date),则可以使用行号 WITH CTE

我正在尝试编写一个查询,在其中选择OrderTable中特定订单的最新更改 前

比如(从上面的例子中),我需要的是Order1、Order2和Order3的最新条目。 有没有人遇到过类似的情况? 我真的非常感谢你的帮助

试试这个:

Select OrderID,max(ChangeDate) as LatestDate
from yourTable
group by OrderID

有多种方法,但假设您需要整个记录,而不仅仅是每个订单id的
max(date)
,则可以使用行号

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

注意:每个订单只返回一条记录。这可能是一个问题,也可能不是问题,如果您与“最大更改日期”有联系,您只需执行以下操作:

SELECT OrderID,
       MAX(ChangeDate) as LatestEntry
FROM yourTable
GROUP BY OrderID

需要删除
分区
排序依据
之间的逗号。
SELECT OrderID,
       MAX(ChangeDate) as LatestEntry
FROM yourTable
GROUP BY OrderID