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 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Julio Cesar Diaz Vera | 2012-05-24 12:18:36 | Re: Funcion ventana |
Previous Message | JHONATAN CANO FURAGARO | 2012-05-23 22:28:34 | Re: PostGis For Postgresql |