Re: Re[2]: consulta sobre sum() en grupo

From: "Luis Guevara" <luis(dot)a(dot)guevara(at)gmail(dot)com>
To: Miguel Bernilla Sánchez <mbernilla(at)sedapal(dot)com(dot)pe>
Cc: "Miguel Huerta" <hgmiguel(at)gmail(dot)com>, PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Re[2]: consulta sobre sum() en grupo
Date: 2007-02-14 23:45:06
Message-ID: fa2b6e3a0702141545p38fdc710h2d37b1e3d9452650@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Ok. gracias a todos.

Siempre lo he trabajado así, solo que pensé que era posible a partir de una
sola consulta y no de una consulta a una subconsulta.

Gracias

atte.
Luis Guevara

El día 14/02/07, Miguel Bernilla Sánchez <mbernilla(at)sedapal(dot)com(dot)pe>
escribió:
>
> ahi va....
>
> select v2.dni,sum(v2.ingresos),sum(v2.egresos)
> from (select v.dni as dni,
> case when v.tipo = 1 then v.importe end as ingresos,
> case when v.tipo = 2 then v.importe end as egresos
> from (select dni,tipo,sum(importe) as importe from tablax
> group by dni,tipo) v) v2
> group by v2.dni;
>
> ============
> Con fecha Miércoles, 14 de Febrero de 2007, 03:00:32 p.m., escribió:
>
>
> > On 2/14/07, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> > Al aplicar esa consulta que me sugieren ambos ( que es la misma o
> > parecida a la que estoy probando), obtengo el siguiente resultado:
>
> > dni ingresos egresos
> > 11111111 0 70
> > 11111111 500 0
> > 22222222 30 0
> > 22222222 0 20
>
> > Me parce que estas haciendo group by dni,tipo.
> > Deja solo GROUP BY dni
> >
> > el cual no es el desado.
> > Lo que deseo es obtener esto:
>
> > dni ingresos egresos
> > 22222222 30 20
> > 11111111 500 70
>
> > Me parece que la unica solución para llegar a esto, seria aplicar otra
> consulta
> > con group by dni. ¿ no hay otra solución para obtener el resultado
> > tan solo con la primera consulta ?
>
> > Gracias
>
>
> > El día 14/02/07, Alvaro Herrera < alvherre(at)commandprompt(dot)com> escribió:
> > Gabriel Colina escribió:
> >>
> >> --- Luis Guevara < luis(dot)a(dot)guevara(at)gmail(dot)com> escribió:
> >>
>
> >> Estoy seguro que te van a dar una mejor respuesta
> >> puesto que lo hago con la empresa a punto de cerrar.,
> >> pero asi sin pensarlo le agregaria los else.
> >>
> >>
> >> select dni,tipo,
> >> case when tipo=1 then sum(importe) else 0 end
> >> as
> >>ingresos,
> >> case when tipo=2 then sum(importe) else 0 end
> >> as
> >>egresos
> >>from pagos
> >>group by dni,
> >> tipo
>
> > Claro, yo habria hecho algo como
>
> > select dni,
> > sum(case when tipo = 1 then importe else 0 end) as ingreso,
> > sum(case when tipo = 2 then importe else 0 end) as egreso,
> > from pagos
> > group by dni
>
> > --
> > Alvaro
> > Herrerahttp://www.CommandPrompt.com/
> > PostgreSQL Replication, Consulting, Custom Development, 24x7 support
>
>
>
>
> > --
> > atte.
> > Luis Guevara
>
>
>
>
>

--
atte.
Luis Guevara

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Luis Guevara 2007-02-14 23:52:20 Re: Re[2]: consulta sobre sum() en grupo
Previous Message Gabriel Colina 2007-02-14 23:25:15 Re: Certificación ISO