--drop table #tst
create table #tst (id int identity, date datetime, customer int)
insert #tst
select '20090102',1 union all
select '20090103',1 union all
select '20090202',1 union all
select '20090304',1 union all
select '20090304',1 union all
select '20090105',1
select * from #tst t
where id = (select top 1 id from #tst t2 where t.customer = t2.customer order by date desc)
select * from #tst t
where id = (select max(id) from #tst t2 where t.customer = t2.customer)
SELECT t1.*
FROM #tst t1 INNER JOIN
(SELECT t2.Customer, MAX(t2.date) AS date
FROM #tst t2
GROUP BY t2.Customer) z ON t1.Customer = z.Customer AND t1.date = z.date
ORDER BY t1.ID
FROM SomeTable t1 INNER JOIN
(SELECT t2.Customer, MAX(t2.Purc_Date) AS Purc_Date
FROM SomeTable t2
GROUP BY t2.Customer) z ON t1.Customer = z.Customer AND t1.Purc_Date = z.Purc_Date
ORDER BY t1.ID