John Taylor <postgres@jtresponse.co.uk> writes:
> I am aware that I am using almost the same select from orderheader 3
> times, but I'm not sure how I can improve on this.
Can you do this?
INSERT INTO target SELECT foo, bar, baz FROM source WHERE condition
To the extent that you are computing multiple fields from the same
row in the source table, this will help.
Also, avoid that IN construct.
regards, tom lane