From: | Miguel Bernilla Sánchez <mbernilla(at)sedapal(dot)com(dot)pe> |
---|---|
To: | "Miguel Huerta" <hgmiguel(at)gmail(dot)com> |
Cc: | "Luis Guevara" <luis(dot)a(dot)guevara(at)gmail(dot)com>, PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re[2]: consulta sobre sum() en grupo |
Date: | 2007-02-14 20:16:32 |
Message-ID: | 109293938.20070214151632@sedapal.com.pe |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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
> Herrera http://www.CommandPrompt.com/
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
> --
> atte.
> Luis Guevara
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2007-02-14 20:30:51 | Re: [pgsql-es-ayuda] tabla pg_user Ayuda...... |
Previous Message | Edwin Quijada | 2007-02-14 20:14:38 | RE: Orientacion Sobre Comparativa entre postgres y mssql |