SELECT dbo.t1.id1, b.id2, b.[year]
FROM dbo.t1 LEFT OUTER JOIN
(SELECT a.id2, a.[year]
FROM t2 a INNER JOIN
(SELECT id2 AS id2, MAX([year]) AS [year]
FROM t2
GROUP BY id2) b ON a.id2 = b.id2 AND a.[year] = b.[year]) b ON
dbo.t1.id1 = b.id2
--另一种方法是:
select a.*,b.*
from 表一 a
left join 表二 b on a.id1=b.id2
left join (select id2,[year]=max([year]) from 表二 group by id2) b1 on b.id2=b1.id2 and b.[year]=b1.[year]