Hola,

en un SELECT con group by, si los campos no estan en la clausula GROUP
BY tienen que estar afectados por una funcion aggregate ( sum(),avg()
, count(), etc. ) .De otra forma no podria ejecturarse la consulta.
Como esperas que te muestre los datos por ejemplo del campo
a.corretivo si este devuelve datos distintos?
es una condicion de SQL y pasa en cualquier RDBMS.

Dorian

2011/1/5 Rodrigo Ruiz Fuentes <rru...@gmail.com>:
> 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
>
>
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a