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

Responder a