From: | Jerry LeVan <jlevan(at)adelphia(dot)net> |
---|---|
To: | Postgres General <pgsql-general(at)postgresql(dot)org> |
Subject: | Running Totals and stuff... |
Date: | 2004-06-01 03:17:33 |
Message-ID: | 39295848-B37A-11D8-BC9D-000393779D9C@adelphia.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
I keep all of my financial data in Postgresql ( 7.4.2).
My "Check" register records deposits, withdrawals (as amount) , date,
category and other stuff.
The following sorta works...
SELECT oid, *, (SELECT sum(amount) FROM checks WHERE x.thedate >=
thedate ) AS total
FROM checks x
ORDER BY thedate,oid ;
The problem is that all transactions on the same date get the total of
all
transactions for that date, so the resulting table is only "sorta" a
running total.
If I change the rascal to look like
SELECT oid, *, (SELECT sum(amount) FROM checks WHERE x.oid >= oid ) AS
total
FROM checks x
ORDER BY thedate,oid ;
I get the right results, but this relies on the fact the oids in the
check table are currently *sorted* (when the table is sorted by thedate)
at least it appears that way via
a very brief inspection.... I suspect if I deleted a record and added
a record the oids would get out of sequence.
Is there a slick way to tell if a column (say the oids column) is in
"sorted"
order when the table is sorted by date?
Assuming the oids get out of wack with respect to the date, is it
possible
to easily construct a table of the checks sorted by date and then "glue
on"
a column of ascending integers so the running total sql statement will
function properly?
Jerry
From | Date | Subject | |
---|---|---|---|
Next Message | Jason Sheets | 2004-06-01 04:20:31 | Re: FTP daemon that support Postgresql |
Previous Message | Christopher Browne | 2004-06-01 02:21:51 | Re: Postgres on Solaris 10 |