Skip site navigation (1) Skip section navigation (2)

Funcion ventana

From: Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar>
To: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Funcion ventana
Date: 2012-05-24 11:24:25
Message-ID: 73A3A527647BB24F9587AA69EC1A4E16113A1823@sar001241.Mapfre.ar (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
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

Responses

pgsql-es-ayuda by date

Next:From: Julio Cesar Diaz VeraDate: 2012-05-24 12:18:36
Subject: Re: Funcion ventana
Previous:From: JHONATAN CANO FURAGARODate: 2012-05-23 22:28:34
Subject: Re: PostGis For Postgresql

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group