Heres a good one... - Mailing list pgsql-sql

From Steve Meynell
Subject Heres a good one...
Date
Msg-id 3AE9C58A.2491BF85@candata.com
Whole thread Raw
Responses Re: Heres a good one...
List pgsql-sql
Ok here is what looks like a good one that has stumped me.

Let me set it up... I have two tables in my database test.  They are
called journal and distrib.

journal looks like this (condensed)
          Table "journal"  Attribute          |  Type      | Modifier
----------------+---------+----------objectid               | integer   |posting_date      | char(4)  |gl_update_flag
|char(1)  |
 

And distrib look like this (condensed)
           Table "distrib"   Attribute           |  Type     | Modifier
------------------+---------+----------objectid                 | integer  |distrib_objectid   | integer
|source_objectid  | integer  |
 

The dataset for each is as follows

journal:
test=# select * from journal;objectid | posting_date | gl_update_flag
----------+--------------+----------------     100    | March 31       | H     101    | March 31       | H     102    |
April02         | Y     103    | April 02         | H     104    | March 14       | H     105    | February 01  | H
106   | February 01  | H
 
(7 rows)

distrib:
test=# select * from distrib;objectid | distrib_objectid | source_objectid
----------+------------------+-----------------       1      |                        103 |             100       2
|                        104 |             100       3      |                        101 |             102       4
|                       101 |             105
 
(4 rows)

Now the trick here is...

I want to update the gl_update_flag in journal to Y all of the records
where the gl_update_flag is H now and the posting date is before or on
March 31 and where the objectid from journal matches either the
distrib_objectid or the source_objectid from the distrib table we need
to also update the opposite journal entry to Y as well.  And can this be
done in one command?

An example from the above data set would be  Journal objectid 100 would
change and so would 103 and 104.
And Journal objectid 101 would update 101 and 102 and 105.
And Journal objectid 106 would only update 106.

Any Ideas?

Thanks in Advance,
Steve




pgsql-sql by date:

Previous
From: Stephan Szabo
Date:
Subject: Re: Alter Table problems
Next
From: Anuradha Ratnaweera
Date:
Subject: order of multiple assignments in UPDATE