Get the latest date for each record

 ̄綄美尐妖づ 提交于 2019-12-02 06:19:25
SELECT TransactionID
      ,PartID
      ,[Description]
      ,[Last Updated]
FROM (
    SELECT TransactionID
          ,PartID
          ,[Description]
          ,[Last Updated]
          ,ROW_NUMBER() OVER (PARTITION BY [PartID] ORDER BY [Last Updated] DESC) RN 
    FROM TableName
    )A
WHERE A.RN = 1

Or you can use CTE

;WITH CTE AS
  (
    SELECT TransactionID
          ,PartID
          ,[Description]
          ,[Last Updated]
          ,ROW_NUMBER() OVER (PARTITION BY [PartID] ORDER BY [Last Updated] DESC) RN 
    FROM TableName
  )
SELECT TransactionID
      ,PartID
      ,[Description]
      ,[Last Updated]  
FROM CTE 
WHERE A.RN = 1
select 
    TransactionID, PartID, Description, LastUpdated
from 
    History H
where
    LastUpdated = 
    (
        select 
            max(LastUpdated) 
        from 
            History
        where
            PartID = H.PartID
    )

Here's How I would do it

 ;WITH CTE AS 
 (
 Select PartId, MAX(LASTUPDATED) as 'MAXX' from part group by PartId
 ) 
 Select TransActionId, p.PartId, Description, p.LASTUPDATED
 from Part p
 inner join CTE on p.LastUpdated = CTE.MAXX
                and p.PartId = CTE.PartId           
SELECT t.TransactionID, t.PartID, t.Description, t.LastUpdated
FROM History t
JOIN (SELECT PartID, MAX(TransactionID)
FROM History
GROUP BY PartID) t2 ON t.PartID = t2.PartID
AND t.TransactionID = t2.TransactionID

will also work.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!