This is not exactly my problem but this is a simple example that will help me. Forgive me but I'm pretty new to SQL.

Let's say I have the following table called SALES:

SALESPERSON DATE AMOUNT
John Doe 1/1/2009 $300
John Doe 3/4/2009 $200
Bill Jones 4/6/2009 $500
Bill Jones 6/8/2009 $800
Sally Smith 5/5/2009 $1000

Each record is a single sale. I want to query this data to return each salesperson's highest sale. The result should be:

SALESPERSON DATE AMOUNT
John Doe 1/1/2009 $300
Bill Jones 6/8/2009 $800
Sally Smith 5/5/2009 $1000

I know that I can return the highest sale in the entire table by using Where AMOUNT = (SELECT MAX(AMOUNT) FROM SALES), but I don't want the single highest sale in the table. I want the highest sale of each salesperson in the table. And I need some of the attributes of that highest sale (like DATE above). I've tried various way of using Group By but it returns nothing. I think this is pretty simple for anyone who knows SQL well. Any help appreciated. Thanks.

Neil