From: | "Josh Berkus" <josh(at)agliodbs(dot)com> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | UPDATE Query problem |
Date: | 2002-01-18 00:55:43 |
Message-ID: | web-622592@davinci.ethosmedia.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-sql |
Folks,
I have a database that contains a chronological journal of activity. For
various reasons, this journal contains both complete and incomplete records,
and while all records are timestamped, the primary key is not strictly ordered
by timestamp.
What I want to do is update each incomplete record with the contents of the
last previous complete record. As a simple-minded test case:
CREATE TABLE history AS (
history_id SERIAL PRIMARY KEY,
period_date TIMESTAMP,
fieldA VARCHAR(30),
fieldB INT4 );
CREATE VIEW complete_history_records AS
SELECT history.*
FROM history WHERE fieldA IS NOT NULL
and fieldB IS NOT NULL
UPDATE history SET fieldA = chr.fieldA
fieldB = chr.fieldB
FROM (SELECT complete_history_records.*
WHERE ??? ) chr
WHERE (history.fieldA IS NULL or
history.fieldB IS NULL);
The problem is that I cannot figure out a subselect that will allow me to
select the last complete history record prior to the one being updated. It
seems like I need to reference a field in the main query in the subselect,
which can't be done.
To further hamper things, for portability reasons, I can use neither SELECT
DISTINCT ON nor custom functions.
I'm stumped. Please offer suggestions!
-Josh Berkus
______AGLIO DATABASE SOLUTIONS___________________________
Josh Berkus
Complete information technology josh(at)agliodbs(dot)com
and data management solutions (415) 565-7293
for law firms, small businesses fax 621-2533
and non-profit organizations. San Francisco
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2002-01-18 01:20:00 | Re: UPDATE Query problem |
Previous Message | Doug Royer | 2002-01-18 00:05:35 | Re: [ANNOUNCE] Commercial: New Book!! PostgreSQL book is |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2002-01-18 01:20:00 | Re: UPDATE Query problem |
Previous Message | Peter Eisentraut | 2002-01-18 00:29:44 | Re: User Permissions |