From: | Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com> |
---|---|
To: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Windows function para sacar balance |
Date: | 2010-12-04 15:13:14 |
Message-ID: | AANLkTind-5ctna63GtWuhnqpnuYqUaO0gcmdZRp-zGH6@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El día 4 de diciembre de 2010 08:04, Edwin Quijada
<listas_quijada(at)hotmail(dot)com> 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 ...
test(at)[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 :-]
From | Date | Subject | |
---|---|---|---|
Next Message | Fernando Javier Luyo Zegarra | 2010-12-06 14:56:57 | RE: Bs. Espacial the_geom |
Previous Message | juanramirez | 2010-12-04 14:20:47 | Re: Windows function para sacar balance |