From: | Alex Pilosov <alex(at)pilosoft(dot)com> |
---|---|
To: | Domingo Alvarez Duarte <domingo(at)dad-it(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Incremental sum ? |
Date: | 2001-06-22 15:29:25 |
Message-ID: | Pine.BSO.4.10.10106221127520.17823-100000@spider.pilosoft.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
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
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alex Pilosov | 2001-06-22 15:34:08 | Re: View performance question |
Previous Message | Alex Pilosov | 2001-06-22 15:27:21 | Re: What is a "tuple" |