Whoops, premature send, sorry. For an arbitrary list of columns, such as t.c
(the column collection) or other SQL selectables, such as the above binary
expressions, you can use sum(columns). E.g.:

t = Table('bobloblaw', MetaData(), Column('a', Integer), Column('b',
Integer), Column('c', Integer))
e = create_engine('sqlite:///:memory:')
e.execute(t.insert(), [{'a':1, 'b':2, 'c':4}])
e.execute(select([sum(t.c)])).fetchall() # equiv. to SELECT a+b+c FROM t
# [(7,)]

Regards,

    - Gulli



On Wed, Feb 25, 2009 at 1:40 PM, Gunnlaugur Thor Briem <gunnlau...@gmail.com
> wrote:

> You can sum the column objects directly, a+b, producing a
> sqlalchemy.sql.expression._BinaryExpression object.
>
> t = Table('bobloblaw', MetaData(), Column('a', Integer), Column('b',
> Integer), Column('c', Integer))
> t.c.a + t.c.b
> # evaluates to <sqlalchemy.sql.expression._BinaryExpression object at
> 0x1ec9ff0>
> print t.c.a + t.c.b
> #  bobloblaw.a + bobloblaw.b
>
>
>
> On Wed, Feb 25, 2009 at 1:25 PM, Ashish Bhatia <
> ashishsinghbha...@gmail.com> wrote:
>
>>
>> The problem is still their.
>>
>> The two seprate list of
>> columns = List of sqlalchem object
>> operator = ['+'','-']
>>
>> using join to join them will convert the columns object to string
>> which is not desirable.
>>
>> Any way to fix this.
>>
>> On Feb 25, 3:54 pm, Ashish Bhatia <ashishsinghbha...@gmail.com> wrote:
>> > sorry its resolved and working
>> >
>> > On Feb 25, 12:20 pm, Ash <ashishsinghbha...@gmail.com> wrote:
>> >
>> > > Hello ,
>> >
>> > > I am trying to make query like
>> >
>> > > select (a+b) from xyz;
>> >
>> > > to do this
>> >
>> > > xyz = sqlalchemy.Table('xyz',metadata)
>> >
>> > > a = sqlalchemy.Column('a', sqlalchemy.Integer)
>> > > xyz.append_column(a)
>> > > b = sqlalchemy.Column('b', sqlalchemy.Integer)
>> > > xyz.append_column(b)
>> >
>> > > column = [(a + b)]
>> > > select = sqlalchemy.select(from_obj=xyz, columns=column,distinct=True)
>> >
>> > > This works fine for me.
>> >
>> > > Now when the columns a and b are dynamic (Enter by the user in form of
>> > > string) and the operator too comes from user
>> >
>> > > columns_list = ['a','b']
>> > > operator = ['+']
>> >
>> > > like this i get the input
>> >
>> > > so i make the loop and make
>> >
>> > > for both the columns something like this
>> > > columns = []
>> > > for x in column_list :
>> > >     t  = sqlalchemy.Column(x, sqlalchemy.Integer)
>> > >     xyz.append_column(a)
>> > >     columns.append(t)
>> >
>> > > so now
>> > > how to add + to make the quer run
>> >
>> > > Thanks in the advance.
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to