38 lines
727 B
PL/PgSQL
38 lines
727 B
PL/PgSQL
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; |