Agrupar resultado por algunos campos

From: Rodrigo Ruiz Fuentes <rruizf(at)gmail(dot)com>
To: Lista Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Agrupar resultado por algunos campos
Date: 2011-01-05 20:45:42
Message-ID: 4D24D876.5070306@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Estimados,
necesito realizar la siguiente consulta:

SELECT a.fecha_ingreso, a.correlativo, a.glosa, f.nombre AS fifo,
c.nombre AS nom_cuenta,
(c.campo_1||c.campo_2||c.campo_3||c.campo_4||c.campo_5||c.campo_6) AS
nro_cuenta, SUM(l.monto_debe) AS debe, SUM(l.monto_haber) AS haber
FROM mgp_asiento a
LEFT JOIN mgp_linea_asiento l ON a.id = l.mgp_asiento_id
LEFT JOIN mgp_fifo f ON a.mgp_fifo_id = f.id
LEFT JOIN mgp_cuenta_contable c ON l.mgp_cuenta_contable_id = c.id
WHERE (l.mgp_cuenta_contable_id IN (5, 7, 17, 10, 270, 20, 25, 26, 27,
30, 36, 37, 42, 44, 48, 50)
AND a.estado = true
AND a.fecha_ingreso >= '2010-01-01'
AND a.fecha_ingreso <= '2010-12-31'
AND l.estado = true)
GROUP BY (l.mgp_cuenta_contable_id, l.mgp_asiento_id)
ORDER BY c.id ASC, a.correlativo ASC, a.fecha_ingreso ASC

Sin embargo, al ejecutarla, me indica que debo agregar cada columna
incluida en el select a la cláusula GROUP BY, sin embargo, yo sólo
quiero agrupar por lo que sale en la consulta.
No puedo utilizar "SELECT DISTINCT ON (l.mgp_cuenta_contable_id,
l.mgp_asiento_id)".
Para aclarar un poco, necesito los campos indicados en el SELECT, que
representa la suma de los montos al debe y haber de diferentes asientos,
cuyas lineas tienen asociadas cuentas contables...

Agredezco la ayuda estimados... feliz nuevo año!

--
Rodrigo Ruiz Fuentes

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2011-01-05 21:13:49 Re: Insertar un registro con la Diagonal Invertida
Previous Message Manuel R. Bercián 2011-01-05 20:31:21 Re: Insertar un registro con la Diagonal Invertida