如何将我的表分组以获取最新日期和ID?

时间:2016-08-11 12:20:50

标签: sql database

我有一张这样的表:

enter image description here

我需要将此表的最新日期分组为每个ID。 我的意思是,我希望每个ID获得最后一行。这是我的疑问:

SELECT DISTINCT ch.dt,ID  FROM dbo.tblrisk AS rk  
  inner join (Select TableIdentity, max([Date]) as dt from tblCommonHistory group by TableIdentity) ch ON ch.TableIDentity = rk.ID order by ID

我怎样才能做我想做的事?

编辑:此查询对我有用:

UPDATE user_shift_test
FROM user_shift_test
SET shifttime='01:00-21:00'
WHERE user_shift_test.userid=5
INNER JOIN swaps 
ON user_shift_test.userid=swaps.csrid 

2 个答案:

答案 0 :(得分:1)

只需使用聚合:

select TableIdentity, max([date])
from tblCommonHistory
group by TableIdentity;

你的问题只提到一张桌子。你的查询有两个;我不明白这种差异。

答案 1 :(得分:0)

您在TableIdentity中重复了tblCommonHistory很奇怪,但是否则您不应该从查询中获得相同ID的多个日期。

而且,加入2个表的唯一原因似乎是你需要跳过ID中不存在的那些tblrisk(你需要做什么?)< / p>

在这种情况下,我建议

SELECT max(ch.Date) AS [Date],ID FROM dbo.tblrisk AS rk  
    inner join tblCommonHistory AS ch ON ch.TableIDentity = rk.ID 
    group by ID order by ID