Tengo un problema que no pasa en ot6ros lenguajes con consultas sobre el
motor.
el entorno es: Python con Tryton y motor PostgreSQL
la consulta la hago en una pantalla con salida a un informe:
class InvoicesRangeReport(Report):
__name__ = 'invoices_range_report'
@classmethod
def parse(cls, report, objects, data, localcontext):
consulta1()
consulta2()
consulta3()
def consulta1():
cursor = Transaction().cursor
cursor.execute("DROP TABLE mivista3")
def consulta2():
query = """CREATE TABLE mivista3 AS
SELECT a.number AS factu,a.invoice_date,e.name AS osoc,
e.alias AS descrip,d.product,d.servicio, 0000 AS cant,
d.monto AS valor,d.id,d.invoice_line,000000 AS total,
000000 AS totfc,d.prefactura
FROM account_invoice a
INNER JOIN alpi_prefactura c ON a.id=c.invoice
INNER JOIN alpi_prefactura_line d ON c.id=d.prefactura
INNER JOIN party_party e ON a.party=e.id
WHERE invoice_date >= '%s' AND invoice_date >= '%s' AND
d.invoice_line >0
ORDER BY product,monto"""% (str(data['desde']),
str(data['hasta']))
cursor = Transaction().cursor
cursor.execute(query)
def consulta3():
query = """SELECT factu, invoice_date AS fecha, osoc, descrip,
servicio,COUNT(product) AS canti,valor,COUNT(product)*valor
AS totfc,
product
FROM mivista3
GROUP BY factu,invoice_date,osoc,descrip,
servicio,valor,product
ORDER BY product"""
cursor = Transaction().cursor
cursor.execute(query)
lista = cursor.fetchone()
localcontext['account_invoices'] = lista
return super(InvoicesRangeReport, cls).parse(report, objects,
data, localcontext)
por lo que se ve la sintaxis esta correcta, pero no puede crear una tabla,
para mi es inexplicable
deberia haber una manera de generar un cursor, cosa que no encuentro en
Postgresql.
QUE ME RECOMIENDAN.. GRACIAS
eduardo martinez