我有一张这样的表:
我需要将此表的最新日期分组为每个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
答案 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