Hi all,

I'm trying to write a GROUP BY query grouped by a function (to_char) using a variable format, which could be 'yy' or 'yyyy'
as in:

sql=session.query(
   func.to_char(Prestazione.c.data,format),
   func.sum(Prestazione.c.quantita).label('quantita'),
   func.sum(Prestazione.c.importo).label('importo')
   )
sql=sql.filter(Verifica.c.codice == Tariffa.c.codice)
sql=sql.filter(Prestazione.c.id_tariffa == Tariffa.c.id)
sql=sql.group_by(Verifica.c.codice, func.to_char(Prestazione.c.data,format))


it works fine in PostgreSQL...

pg:

SELECT to_char(prestazione.data, %(to_char_2)s) AS to_char_1, sum(prestazione.quantita) AS quantita, sum(prestazione.importo) AS importo
FROM prestazione, verifica, tariffa
WHERE verifica.codice = tariffa.codice
AND prestazione.id_tariffa = tariffa.id
AND prestazione.aa_bolletta = %(aa_bolletta_1)s
AND prestazione.nr_bolletta = %(nr_bolletta_1)s
AND prestazione.sezionale = %(sezionale_1)s
GROUP BY verifica.codice, to_char(prestazione.data, %(to_char_3)s)
{'to_char_2': 'yyyy', 'nr_bolletta_1': 1, 'aa_bolletta_1': 2009, 'sezionale_1': u'53', 'to_char_3': 'yyyy'}

Col ('to_char_1', 'quantita', 'importo')

Row (u'2009', Decimal('1.000'), Decimal('482.000'))
Out[1]: (u'2009', Decimal('1.000'), Decimal('482.000'))


... but Oracle...

DatabaseError: (DatabaseError) ORA-00979: not a GROUP BY expression
'SELECT to_char(prestazione.data, :to_char_2) AS to_char_1, sum(prestazione.quantita) AS quantita, sum(prestazione.importo) AS importo
FROM prestazione, verifica, tariffa
WHERE verifica.codice = tariffa.codice
AND prestazione.id_tariffa = tariffa.id
AND prestazione.aa_bolletta = :aa_bolletta_1
AND prestazione.nr_bolletta = :nr_bolletta_1
AND prestazione.sezionale = :sezionale_1
GROUP BY verifica.codice, to_char(prestazione.data, :to_char_3)'
{'to_char_2': 'yyyy', 'nr_bolletta_1': 1, 'aa_bolletta_1': 2010, 'sezionale_1': u'53', 'to_char_3': 'yyyy'}


version: SA 0.6beta3

Thanks for any help
j

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@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