Re: Funcion ventana

From: Julio Cesar Diaz Vera <jcdiaz(at)uci(dot)cu>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Funcion ventana
Date: 2012-05-24 12:18:36
Message-ID: 4FBE271C.3090606@uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Conrado con esta consulta obtienes el resultado que deseas. Resalto el
uso de la ventana para realizar la suma acumulada de cada caso
Saludos
Julio
/select tipo1, tipo2,*sum(imp) over (order by id)* from (select id, imp
as tipo1, 0 as tipo2, imp from foo where tipo= 1 union select id, 0 as
tipo1, imp as tipo2, imp*-1 from foo where tipo= 2)Aux/

El 5/24/2012 7:24 AM, Conrado Blasetti escribió:
>
> Gente, Buenos días.
>
> Tengo una vista de movimientos debe/haber, facturas/pagos donde están
> tengo importes y el tipo de movimiento de cada uno.
>
> Creo que con funciones ventana se podría sacar el acumulado por
> registro, pero no doy en la tecla.
>
> Este es un ejemplo simplificado para realizar el select:
>
> El campo tipo, es el tipo de movimiento que, cuando es 1, debería
> sumar el importe, si es 2, debería restar.
>
> drop table foo;
>
> create table foo (
>
> id serial not null,
>
> tipo numeric(10) not null,
>
> imp numeric(10,2),
>
> CONSTRAINT foo_id PRIMARY KEY (id)
>
> );
>
> insert into foo (tipo, imp) values (1,30.5);
>
> insert into foo (tipo, imp) values (1,20.25);
>
> insert into foo (tipo, imp) values (2,30);
>
> insert into foo (tipo, imp) values (1,75.3);
>
> insert into foo (tipo, imp) values (1,75.3);
>
> insert into foo (tipo, imp) values (2,100);
>
> select * from foo;
>
> 1;1;30.50
>
> 2;1;20.25
>
> 3;2;30.00
>
> 4;1;75.30
>
> 5;1;75.30
>
> 6;2;100.00
>
> La consulta debería mostrar al asi:
>
> TIPO 1 TIPO 2 SALDO
>
> 30.5 0 30.5
>
> 20.25 0 50.75
>
> 0 30 20.75
>
> 75.3 0 96.05
>
> 75.3 0 171.35
>
> 0 100 75.35
>
> La columna Saldo, sería el acumulado de la diferencia de la suma de
> TIPO 1, menos TIPO2.
>
> Bueno, esto creo que se puede hacer en una misma sentencia sql, pero
> se me está complicando, me darán una mano para armarla?
>
> Desde ya, gracias
>
> Saludos,
>
> Conrado
>
> Usando Postgresql 9.0
>
>
>
> <http://www.uci.cu/>

10mo. ANIVERSARIO DE LA CREACION DE LA UNIVERSIDAD DE LAS CIENCIAS INFORMATICAS...
CONECTADOS AL FUTURO, CONECTADOS A LA REVOLUCION

http://www.uci.cu
http://www.facebook.com/universidad.uci
http://www.flickr.com/photos/universidad_uci

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Conrado Blasetti 2012-05-24 13:45:25 Funcion ventana nueva consulta
Previous Message Conrado Blasetti 2012-05-24 11:24:25 Funcion ventana