use func.abs(q.address.lat) for the ABS function. On Jan 31, 2007, at 4:24 PM, Brent Pedersen wrote:
> > hi, i've got it this far now. but it doesnt like the q.address.lat/lon > since it makes an alias in the join. how to i get at that alias? > > > sajoin = q.join_to('address') > sorder = "ABS(" + str(q.address.lat) +" - %f) + ABS(" + > str(q.address.lon) +" - %f)" > sorder %= (lat,lon) > return q.select( > sajoin > ,order_by=asc(sorder) > ,limit=800 > ) > > > On 1/31/07, Brent Pedersen <[EMAIL PROTECTED]> wrote: >> hi, how can put custom sql in a query? specifically in this code? the >> problem is with the order_by. i want to pass it some custom sql: >> >> q = session.query(Student) >> sajoin = q.join_to('address') >> >> return q.select( >> sajoin, >> order_by="(ABS(address.lat - %s) + ABS(address.lon - % >> s))" >> % (lat,lon) >> ,limit=800 >> ) >> >> >> >> that doesnt work . this does: >> order_by=asc((address.c.lat - lat) + (address.c.lon - lon)) >> >> but it's not quite what i need--the manhattan distance.... >> and i'd like the results to be in my mapped objects so >> i can still do >> student.address.lat, etc. >> >> i've scoured the docs, but maybe i've missed something. >> any pointers? >> thanks. >> -brent >> > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---