from sqlalchemy import *
m= MetaData()
trans =Table( 'trans', m, Column( 'date', Date), )
balance=Table( 'balance', m, Column( 'finaldate', Date), )
b = balance.alias('b')
sprev = select( [ func.max( b.c.finaldate)],
b.c.finaldate < balance.c.finaldate
)
#correlate is non-generative in 0.3 (ret None) but generative in 0.4
sprev = sprev.correlate( balance) or sprev
r = trans.c.date > func.coalesce( sprev,0 )
#, as_scalar=True ) with or without all the same
Michael Bayer wrote:
> seems like you might need an as_scalar() on the select object.
> otherwise send an example.
>
>
> On Dec 15, 2007, at 10:06 AM, svilen wrote:
>
>> seems something about .type vs .type_ or similar:
>>
>> Traceback (most recent call last):
>> File "tests/convertertest.py", line 152, in
>> test4_balance_trans_via_prev_balance_date_subselect
>> trans.c.date > func.coalesce( sprev,0 )
>> File "sqlalchemy/sql/expression.py", line 777, in __call__
>> return func(*c, **o)
>> File "sqlalchemy/sql/functions.py", line 12, in __call__
>> return type.__call__(self, *args, **kwargs)
>> File "sqlalchemy/sql/functions.py", line 35, in __init__
>> kwargs.setdefault('type_', _type_from_args(args))
>> File "sqlalchemy/sql/functions.py", line 75, in _type_from_args
>> if not isinstance(a.type, sqltypes.NullType):
>> AttributeError: 'Select' object has no attribute 'type'
>>
>>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---