I need help with an advanced SQL-query (MSSQL 2000).
I have a table called Result that lists athletics 100 and 200 meter race-times. A runner can have several racetimes but I want to show only the best time from each runner at each event.
The Result-table contains five columns, Result_id, athlete_id, result_time, result_date, event_code. So athlete_id must be unique when I list the values and result_time must be the fastest (lowest) value. Also I want to be able to choose if event_code should be “= 1” or “= 2”, since 100 and 200 meter resulttimes are mixed in the same table.
I asked a similiar question a few days ago, but without the event_code condition.
This is the answer we came up with.
select r.*
from result r
inner join (
select athelete_id, min(result_time) as FastestTime
from result
group by athelete_id
) rm on r.athelete_id = rm.athelete_id and r.result_time = rm.FastestTime
Any ideas how I can add the event_code condition to this snippet?
Try this: