So I'm trying to use the DAL to create all of my queries, but I may have 
just exceeded its capability.

My task is to create a view of "best times" for a particular sport.  The 
sport has multiple events and the user is interested in collecting their 
best times over the entire database, organized by event.  The SQL looks 
something like this:

select * from times as t
inner join (
  select course, event_code, min(finals) as "min_time" from times
    where id_competitor=XXXX and finals>0
    group by course, event_code
  ) as tt
on t.event_code=tt.event_code
  and t.course=tt.course
  and t.finals=tt.min_time
  and t.id_competitor=XXXX
order by t.course, t.event_code

The XXXX represents a specific literal ID number for the competitor.  This 
query is to be run for each competitor when they choose to see the view, so 
limiting it to a single person is the desired approach.  

The inner join choose the best (minimum) time for each course and 
event_code.  

Disqualifications are stored as negative times, so the clause to restrict 
finals>0 is to exclude any of these outliers.

I've been studying up on the alternate join syntax for the DAL but I don't 
see a way to handle the conditions such as "finals>0" in the new syntax. 
 If the "on" method could be attached to a Set object instead of only a 
Table, maybe I could approach this query.

But I thought I'd ask the real SQL experts before I give up.  Also, what is 
my fallback if I need to do this query outside of DAL?

-- Joe B.

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to