BEGIN; WITH plist AS ( SELECT DISTINCT part ,plnt FROM rlarp.osm_fcpool ) ,clist AS ( SELECT p.part ,p.plnt ,COALESCE(im.cnstcs,ip.costcs, ir.y3stcs) stdcost FROM plist p LEFT OUTER JOIN lgdat.ftcstm im ON im.cnpart = p.part AND im.cnplnt = p.plnt LEFT OUTER JOIN lgdat.ftcstp ip ON ip.copart = p.part AND ip.coplnt = p.plnt LEFT OUTER JOIN lgdat.ftcstr ir ON ir.y3part = p.part AND ir.y3plnt = p.plnt ) UPDATE rlarp.osm_fcpool o SET fb_cst_loc_fut = c.stdcost * o.fb_qty FROM clist c WHERE c.part = o.part AND c.plnt = o.plnt; commit;