hi matt - here's that query generated using lexical tables, which are just like Table objects but require less boilerplace for SQL prototyping purposes:
from sqlalchemy import * from sqlalchemy.sql import table, column import datetime shift = table('shift', column('employee_id', Integer), column('shift_time_id', Integer)) shift_time = table('shift_time', column('id', Integer), column('start_time', DateTime), column('stop_time', DateTime)) s = select([shift.c.employee_id, func.sum(shift_time.c.stop_time - shift_time.c.start_time).label('hours')]).\ where(shift.c.employee_id.in_([28630, 28648])).\ where(shift.c.shift_time_id==shift_time.c.id).\ where(shift_time.c.start_time.between( datetime.datetime(2008, 11, 2, 0, 0, 0), datetime.datetime(2008, 11, 9, 0, 0, 0) )).\ group_by(shift.c.employee_id).\ order_by(desc("hours")) print s print s.compile().params On Dec 4, 2008, at 11:23 AM, Matt Wilson wrote: > > Right now, I'm writing this query as a string. I want to know if it > can be expressed with SQLAlchemy's expressions instead. > > Here's the query: > > select sh.employee_id, sum(st.stop_time - st.start_time) as hours > from shift sh, shift_time st > where sh.employee_id in (28630, 28648) > and sh.shift_time_id = st.id > and st.start_time between timestamp '2008-11-02 00:00:00' and > timestamp '2008-11-09 00:00:00' > group by sh.employee_id > order by hours desc; > > Any ideas? > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---