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;