Re: Agrupar resultado por algunos campos

From: Dorian Kuroki <dkuroki(at)gmail(dot)com>
To: Rodrigo Ruiz Fuentes <rruizf(at)gmail(dot)com>
Cc: Lista Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Agrupar resultado por algunos campos
Date: 2011-01-06 12:41:39
Message-ID: AANLkTi=L79QyxAqF3Z1h-th_WyPnhNv6zfND0xR1i-x7@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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 <rruizf(at)gmail(dot)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
>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Washington Vargas Prada 2011-01-07 01:22:57
Previous Message Manuel R. Bercián 2011-01-05 21:43:51 Re: Insertar un registro con la Diagonal Invertida