2016-08-11 26 views
-1

我有一个表是这样的:如何将表格中的最新日期和ID分组?

enter image description here

我需要这组最新表日期为每一个ID。 我的意思是,我想得到最后一行每个ID。以下是我的查询:

SELECT DISTINCT ch.Date,ID FROM dbo.tblrisk AS rk 
    inner join (Select TableIdentity, [Date] from tblCommonHistory) ch 
    ON ch.TableIDentity = rk.ID order by 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 
+0

显示我们预期的结果(给定样本数据如上)。 – jarlh

回答

1

只需使用聚合:

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

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

+0

表从tblrisk表,日期值从tblCommonHistory表获取ID值。 – pseudocode

+0

引用问题:“我有这样一张桌子:”。 –

0

奇怪的是,您在tblCommonHistory中复制了TableIdentity,但除此之外,您应该不会从您的查询中获得相同ID的多个日期。

而且还加入了2代表的唯一原因似乎是,你需要跳过这些ID不存在于tblrisk(是你需要做什么?)

在这种情况下,我建议

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 
相关问题