Thanks a lot! 
I hope you do find the time to write a pure DAL query, because i'm so eager 
to know how it can be done! 
But first i have a workaround that i'll be able to use... 

Op dinsdag 4 september 2012 10:06:08 UTC+2 schreef Niphlod het volgende:
>
> definitely. I don't have time to test at the moment a "vanilla" DAL 
> solution, but if you use 2.0.6 you can use 
>
> db.executesql("""your query""", fields=[db.person.EmployeeID, 
> db.person.name]) 
> and get back a "normal" rows object.
>
> Il giorno martedì 4 settembre 2012 09:23:43 UTC+2, Remco Boerma ha scritto:
>>
>> Indeed. The point is to get the list of employeenames based on the 
>> effective date (so get the most up to date row not in the future). The 
>> query i provided works, and there's no way that i know of to do it more 
>> effectively. Your query would require a second roundtrip to the database 
>>  to get all the names for the found dates and that's what i want to avoid 
>> because we use this technique also with sets of hundreds of thousands of 
>> rows. 
>>
>> Anyone else who has a guess how to rewrite this using the DAL? Is there 
>> any way to alias and subquery? Or can raw sql be added to the where clause? 
>>
>> Thanks
>>
>> Op donderdag 30 augustus 2012 11:02:02 UTC+2 schreef Niphlod het volgende:
>>>
>>> I think the point here is retrieve only the record with the same 
>>> employeeid that has the max date. if so, why can't we rewrite that ugly 
>>> query as (a much more performant)
>>>
>>> SELECT  
>>> EmployeeID, 
>>> MAX(effdt) 
>>> FROM person 
>>> WHERE (effdt < now) 
>>> GROUP BY EmployeeID
>>>
>>> ? it's because you need the name ?
>>>
>>> Il giorno giovedì 30 agosto 2012 08:32:21 UTC+2, Johann Spies ha scritto:
>>>>
>>>> Hallo Remco,
>>>>
>>>>
>>>> Try this:
>>>> import datetime
>>>> now = datetime.datetime.now()
>>>> query = db.person.effdt > now
>>>> data = SQLFORM.grid(query)
>>>>
>>>> Regards
>>>> Johann
>>>>
>>>> -- 
>>>> Because experiencing your loyal love is better than life itself, 
>>>> my lips will praise you.  (Psalm 63:3)
>>>>
>>>>

-- 



Reply via email to