I have a table structured as following:

I’m trying to select the latest handicap for each player, and is therefore sorting by date and playerId.
Consider the following query:
SELECT h.id, h.playerId, h.amount, h.date
FROM hancicap h
WHERE h.date < '2012-06-11'
ORDER BY h.playerId ASC, h.date DESC
Which yields a result such as following:

(the underlined rows are the ones I’d like to return)
My first thought was to add a GROUP BY h.playerId, but that results in wrong value. I’m completely stuck and would appreciate all suggestions and thoughts!
Wasn’t sure what I was supposed to name the thread. An edit to make the name more correct would be great.
You can use a subquery to filter out the latest rows: