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; */