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:52:20
Message-ID: fa2b6e3a0702141552s199125d9u9d1e2919968daee3@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Rectificación.

Volví a leer los mensajes y si es posible obtener el resultado en una sola
consulta. Tal como señaló el amigo Miguel Huerta he tenido una equivocación
al agrupar los datos.

Gracias

atte.
Luis GUevara

El día 14/02/07, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> escribió:
>
> 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

--
atte.
Luis Guevara

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gabriel Colina 2007-02-15 00:00:38 Re: Orientacion Sobre Comparativa entre postgres y mssql
Previous Message Luis Guevara 2007-02-14 23:45:06 Re: Re[2]: consulta sobre sum() en grupo