El día 4 de diciembre de 2010 08:04, Edwin Quijada
<[email protected]> escribió:
> Estoy tratando de usar las funciones windows para hacer una consulta pero no
> me sale nada. tengo la sigte tabla
>
> Fecha     DOcumento    Debito Credito
> 02/2010   8999              0        100
> 03/2010   8736              0        300
> 04/2010   8499              0        100
> 05/2010   8636              400    0
> 06/2010   8199              100    0
> 07/2010   8036              200    0
>
> Y deseo lo siguiente
> Fecha     DOcumento    Debito Credito      Balance
> 02/2010   8999              0        100           -100
> 03/2010   8736              0        300           -400
> 04/2010   8499              0        100           -500
> 05/2010   8636              400    0               -100
> 06/2010   8199              100    0                   0
> 07/2010   8036              200    0                 200
>
> Esto se puede con windows functions ?

Lo resolvi con sql "recursivo" será cuestión de algo de pruebas ...

t...@[local]=# with balance_ as(select (debito-credito) as res,fecha
from balance order by fecha) select *,coalesce((select sum(res) from
balance_ b1 where b1.fecha<b2.fecha),0)+(select res from balance_ b1
where b1.fecha=b2.fecha) as res from  balance b2 order by fecha;
   fecha    | doc  | debito | credito | res
------------+------+--------+---------+------
 2010-02-01 | 8999 |      0 |     100 | -100
 2010-03-01 | 8736 |      0 |     300 | -400
 2010-04-01 | 8499 |      0 |     100 | -500
 2010-05-01 | 8636 |    400 |       0 | -100
 2010-06-01 | 8199 |    100 |       0 |    0
 2010-07-01 | 8036 |    200 |       0 |  200
(6 filas)

Duración: 1.391 ms

Es mi primera consulta sql de este tipo :-]
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a