[pyar] Web2py query orderby con error de sqlite

Mariano Reingart reingart en gmail.com
Mar Jun 4 13:30:51 ART 2013


On Tue, Jun 4, 2013 at 10:48 AM, Luciano Bovio <omicronvt en gmail.com> wrote:
> Tengo esta query en web2py :
>
> def saldos():
>     suma = db.todos.importe.sum()
>     results= db(db.todos).select(suma, db.todos.cuenta, db.cuentas.razon,
> left=db.cuentas.on(db.todos.cuenta==db.cuentas.cuenta),
> groupby=db.cuentas.razon, orderby=suma)
>     return dict(results=results)
>
> Si uso la vista automática funciona OK
>
> Cuando quiero usar una vista html personalizada :
>
> <table>
> <tr><th>CUENTA</th><th>RAZON</th><th>SALDO</th><th></th></tr>
> {{for row in results:}}
> <tr><td>{{=row.todos.cuenta}}</td><td>{{=row.cuentas.razon}}</td><td>{{=row.ss}}</td></tr>
> {{pass}}
>
> Donde row.ss es el campo calculado
> para lo cual cambio la query a :
>
> def saldos():
>     suma = (db.todos.importe.sum()).with_alias("ss")
>     results= db(db.todos).select(suma, db.todos.cuenta, db.cuentas.razon,
> left=db.cuentas.on(db.todos.cuenta==db.cuentas.cuenta),
> groupby=db.cuentas.razon, orderby=suma)
>     return dict(results=results)
>
> Acá me salta un error :
>
> <class 'sqlite3.OperationalError'> near "AS": syntax error
>
> Si remuevo el orderby=suma de la query, anda OK
>
> Alguna idea ? Gracias

Podes probar poniendo el with_alias solo en el select, para que no te
lo tome el orderby:

def saldos():
    suma = (db.todos.importe.sum())
    results= db(db.todos).select(suma.with_alias("ss"),
db.todos.cuenta, db.cuentas.razon,
left=db.cuentas.on(db.todos.cuenta==db.cuentas.cuenta),
groupby=db.cuentas.razon, orderby=suma)

Sds

Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com



More information about the pyar mailing list