if you are not using SQL 2005/2008select t.goodid, t.year, jan = sum(jan), feb = sum(feb), . . .from mytable t inner join ( select goodid, year = max(year) from mytable group by goodid ) m on t.goodid = m.goodid and t.year = m.yeargroup by goodid
and if you are using SQL 2005/2008select *from( select t.goodid, t.year, row_no = row_number() over(partition by t.goodid order by t.year desc), jan = sum(jan), feb = sum(feb), . . . from mytable t group by goodid, t.year) twhere t.row_no = 1
KH[spoiler]Time is always against us[/spoiler]