Re: Incremental sum ?

Alex Pilosov <alex@pilosoft.com>

From: Alex Pilosov <alex@pilosoft.com>
To: Domingo Alvarez Duarte <domingo@dad-it.com>
Cc: pgsql-sql@postgresql.org
Date: 2001-06-22T15:29:25Z
Lists: pgsql-sql
It should be done using subqueries.
select ..., (
   select sum(val)-sum(paid) from invoices i2
   where i2.invoice_id<i.invoice_id
     and i2.cust_id=i.cust_id
   )
from invoices i


On 22 Jun 2001, Domingo Alvarez Duarte wrote:

> I have a problem that requires what I call a incremental sum, lets say
> I have the folowing table (for simplicity):
> 
> table invoices_not_paid(cust_id int, invoice_id int, val numeric, paid
> numeric);
> 
> with the folowing values:
> 
> cust_id   invoice_id   val    paid
> ----------------------------------
> 1             23      10.50   3.40
> 1             34       5.70   0.0
> 1             67      23.89   4.50
> 
> 
> I want show a list like this:
> 
> cust_id   invoice_id   val    paid  incremental_not_paid_sum
> -----------------------------------------------------------------
> 1             23      10.50   3.40     (10.50 - 3.40)        7.10
> 1             34       5.70   0.0    (7.10 + 5.70 - 0.0)    12.80
> 1             67      23.89   4.50  (12.80 + 23.89 - 4.50)  31.19
> 
> The operations betwen () are showed only to explain how the
> incremental_not_paid_sum is calculated, The operation requires a
> reference to a previous column or a partial sum of columns till that
> moment, someone has an idea how this can be done using sql ?
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
> 
>