BEGIN;
with p AS (
    SELECT
        part
        ,bill_cust
        ,ship_cust
        ,round(fb_val_loc/fb_qty,10) AS price
        ,orderdate
        ,row_number() OVER (PARTITION BY part,bill_cust, ship_cust ORDER BY orderdate DESC) rn
    FROM
        rlarp.osm
    WHERE
        fs_line = '41010'    
        AND calc_status <> 'CANCELED'
        AND COALESCE(part,'') <> ''
        AND fb_qty <> 0
        AND orderdate IS NOT NULL
    ORDER BY
        part
        ,bill_cust
        ,ship_cust
        ,orderdate
)
--SELECT * FROM p WHERE rn = 1
,ins AS (
    SELECT
        b.plnt
        ,b."ddord#"
        ,b."dditm#"
        ,b."fgbol#"
        ,b."fgent#"
        ,b."diinv#"
        ,b."dilin#"
        ,b.promo
        ,b.return_reas
        ,b.terms
        ,b.custpo
        ,b.dhincr
        ,b.diext
        ,b.ditdis
        ,b.dcodat
        ,b.ddqdat
        ,b.dcmdat
        ,b.dhidat
        ,b.fspr
        ,b.remit_to
        ,b.bill_class
        ,b.bill_cust
        ,b.bill_rep
        ,b.bill_terr
        ,b.ship_class
        ,b.ship_cust
        ,b.ship_rep
        ,b.ship_terr
        ,b.quota_rep
        ,b.account
        ,b.shipgrp
        ,b.geo
        ,b.chan
        ,b.orig_ctry
        ,b.orig_prov
        ,b.orig_post
        ,b.dest_ctry
        ,b.dest_prov
        ,b.dest_post
        ,b.part
        ,b.ord_gldc
        ,b.majg
        ,b.ming
        ,b.majs
        ,b.mins
        ,b.gldc
        ,b.glec
        ,b.harm
        ,b.clss
        ,b.brand
        ,b.assc
        ,b.fs_line
        ,b.r_currency
        ,b.r_rate
        ,b.c_currency
        ,b.c_rate
        ,b.ddqtoi
        ,b.ddqtsi
        ,b.fgqshp
        ,b.diqtsh
        ,b.fb_qty
        ,b.fb_cst_loc
        ,b.fb_cst_loc_cur
        ,b.fb_cst_loc_fut
        ,b.fb_qty * p.price - b.fb_val_loc fb_val_loc
        ,b.fb_val_loc_pl
        ,b.calc_status
        ,b.flag
        ,b.orderdate
        ,b.requestdate
        ,b.shipdate
        ,b.adj_orderdate
        ,b.adj_requestdate
        ,b.adj_shipdate
        ,b."version"
        ,b.iter
    WHERE
        orderdate BETWEEN '2019-03-25' AND '2019-05-31'
        AND version = '9p3'
        AND iter = 'forecast'
)
,

/*
,upd AS (
    UPDATE rlarp.osmfs SET
        fb_val_loc = fb_qty * p.price
    FROM
        p
    WHERE
        p.part = f.part
        AND p.bill_cust = f.bill_cust
        AND p.ship_cust = f.ship_cust
)
ROLLBACK;
*/