diff --git a/route_sql/addmonth_vupd.sql b/route_sql/addmonth_vupd.sql index fb9e9fa..a6acf2f 100644 --- a/route_sql/addmonth_vupd.sql +++ b/route_sql/addmonth_vupd.sql @@ -5,21 +5,20 @@ the volume must be expressed in terms of units, since that is what it will be sc target AS (select target_volume vincr, target_price pincr) ,testv AS ( SELECT - sum(fb_qty) tot - ,sum(fb_qty) FILTER (WHERE iter = 'copy') base - ,COALESCE(sum(fb_qty) FILTER (WHERE iterdef->>'type' = 'new basket'),0) newpart - ,sum(fb_val_loc *r_rate) totsales - ,sum(fb_val_loc *r_rate) FILTER (WHERE iter = 'copy') basesales - ,COALESCE(sum(fb_val_loc *r_rate) FILTER (WHERE iterdef->>'type' = 'new basket'),0) newpartsales + sum(units) tot + ,sum(units) FILTER (WHERE iter = 'copy') base + ,COALESCE(sum(units) FILTER (WHERE module = 'new basket'),0) newpart + ,sum(value_loc *r_rate) totsales + ,sum(value_loc *r_rate) FILTER (WHERE iter = 'copy') basesales + ,COALESCE(sum(value_loc *r_rate) FILTER (WHERE module = 'new basket'),0) newpartsales FROM - rlarp.osm_fcpool + rlarp.osm_pool WHERE -----------------scenario---------------------------- where_clause -----------------additional params------------------- AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments - AND adj_orderdate <= adj_shipdate - + AND order_date <= ship_date ) ,flagv AS ( SELECT @@ -55,7 +54,7 @@ target AS (select target_volume vincr, target_price pincr) FROM testv ) -,GLD AS ( +,GLD AS MATERIALIZED ( SELECT N1COMP COMP ,N1CCYY FSYR @@ -64,6 +63,7 @@ target AS (select target_volume vincr, target_price pincr) ,to_char(N1FSYP,'FM0000') FSPR ,N1SD01 SDAT ,N1ED01 EDAT + ,daterange(n1sd01, n1ed01) drange ,to_char(N1ED01,'yymm') CAPR ,N1ED01 - N1SD01 +1 NDAYS ,CASE WHEN EXTRACT(MONTH FROM N1ED01) >= 6 THEN EXTRACT(YEAR FROM N1ED01) + 1 ELSE EXTRACT(YEAR FROM N1ED01) END SSYR @@ -75,38 +75,37 @@ target AS (select target_volume vincr, target_price pincr) KPCCYY = N1CCYY WHERE N1COMP = 93 - --AND DIGITS(N1FSYP) = '1901' ) ,mseq AS ( SELECT * FROM ( VALUES - ('Jun',1,6,-1) - ,('Jul',2,7,-1) - ,('Aug',3,8,-1) - ,('Sep',4,9,-1) - ,('Oct',5,10,-1) - ,('Nov',6,11,-1) - ,('Dec',7,12,-1) - ,('Jan',8,1,0) - ,('Feb',9,2,0) - ,('Mar',10,3,0) - ,('Apr',11,4,0) - ,('May',12,5,0) + ('01 - Jun',1,6,-1) + ,('02 - Jul',2,7,-1) + ,('03 - Aug',3,8,-1) + ,('04 - Sep',4,9,-1) + ,('05 - Oct',5,10,-1) + ,('06 - Nov',6,11,-1) + ,('07 - Dec',7,12,-1) + ,('08 - Jan',8,1,0) + ,('09 - Feb',9,2,0) + ,('10 - Mar',10,3,0) + ,('11 - Apr',11,4,0) + ,('12 - May',12,5,0) ) x(m,s,cal,yr) ) -,alldates AS ( +,alldates AS MATERIALIZED( SELECT promo ,terms ,order_month ,mseq.s seq - ,orderdate - ,requestdate - ,shipdate + ,order_date + ,request_date + ,ship_date ,sum(CASE (SELECT flagsales FROM flagv) WHEN 'no price'THEN 1.0 ELSE value_usd END) value_usd FROM - rlarp.osm_fcpool + rlarp.osm_pool LEFT OUTER JOIN mseq ON mseq.m = order_month WHERE @@ -116,52 +115,52 @@ target AS (select target_volume vincr, target_price pincr) AND CASE (SELECT flag FROM flagv) WHEN 'scale all' THEN true WHEN 'scale copy' THEN iter = 'copy' - WHEN 'scale new part' THEN iterdef->>'type' = 'new basket' + WHEN 'scale new part' THEN module = 'new basket' END AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments - AND adj_orderdate <= adj_shipdate + AND order_date <= ship_date GROUP BY promo ,terms ,order_month ,mseq.s - ,orderdate - ,requestdate - ,shipdate + ,order_date + ,request_date + ,ship_date HAVING sum(CASE (SELECT flagsales FROM flagv) WHEN 'no price'THEN 1.0 ELSE value_usd END) <> 0 ) --select * from alldates ,dom AS ( SELECT - extract(day FROM orderdate) DOM + extract(day FROM order_date) DOM ,sum(value_usd) value_usd FROM alldates GROUP BY - extract(day FROM orderdate) + extract(day FROM order_date) ) ---------------------may want ot look at a top-5 mix solution in the future facilitated by sum() over (order by sales desc)--------------- ,mmix AS ( SELECT - to_char(orderdate,'Mon') _month + to_char(order_date,'Mon') _month ,seq ,promo - ,sum(extract(day from orderdate)*value_usd) dom_wa - --,requestdate-orderdate rlag - ,sum((requestdate-orderdate)*(value_usd)) rlag_wa - --,shipdate - requestdate slag - ,sum((shipdate - requestdate)*(value_usd)) slag_wa + ,sum(extract(day from order_date)*value_usd) dom_wa + --,request_date-order_date rlag + ,sum((request_date-order_date)*(value_usd)) rlag_wa + --,ship_date - request_date slag + ,sum((ship_date - request_date)*(value_usd)) slag_wa ,sum(value_usd) value_usd FROM alldates GROUP BY - to_char(orderdate,'Mon') + to_char(order_date,'Mon') ,seq ,promo - --,extract(day from orderdate) - --,requestdate-orderdate - --,shipdate - requestdate + --,extract(day from order_date) + --,request_date-order_date + --,ship_date - request_date ) ,targm AS (select s, m from mseq where m = 'target_month' ) ,mmixp AS ( @@ -187,117 +186,45 @@ target AS (select target_volume vincr, target_price pincr) abs(seq - targm.s) ASC LIMIT 1 ) ---SELECT * FROM mmixp order by seq asc, vperc desc +---------------------the role of basemix here is to get non-dated info which is then dated in the next step--------------------- ,basemix AS ( SELECT - plnt ---master data - ,0::numeric(11,0) "ddord#" --0 - ,0::numeric(11,0) "dditm#" --0 - ,0::numeric(11,0) "fgbol#" --0 - ,0::numeric(11,0) "fgent#" --0 - ,0::numeric(9,0) "diinv#" --0 - ,0::numeric(3,0) "dilin#" --0 - ,null::text promo --history date mix - ,null::text return_reas --0 - ,terms - ,''::text custpo --0 - ,'I' dhincr --0 - ,null::numeric diext - ,null::numeric ditdis - ,null::date dcodat --calculated date mix - ,null::date ddqdat --calculated date mix - ,null::date dcmdat --calculated date mix - ,null::date dhidat --calculated date mix - ,null::text fspr --calculated date mix - ,remit_to --master data - ,bill_class --master data - ,bill_cust --history cust mix - ,bill_rep --master data - ,bill_terr --master data - ,ship_class --master data - ,ship_cust --history cust mix - ,ship_rep --master data - ,ship_terr --master data - ,quota_rep --master data - ,account --master data - ,shipgrp --master data - ,geo --master data - ,chan --master data - ,orig_ctry --master data - ,orig_prov --master data - ,orig_post --master data - ,dest_ctry --master data - ,dest_prov --master data - ,dest_post --master data - ,part --history part mix - ,ord_gldc --master data - ,majg --master data - ,ming --master data - ,majs --master data - ,mins --master data - ,gldc --master data - ,glec --master data - ,harm --master data - ,clss --master data - ,brand --master data - ,assc --master data - ,fs_line --master data - ,r_currency --history cust mix - ,r_rate --master data - ,c_currency --master data - ,c_rate --master data - ,0::numeric(15,5) ddqtoi --0 - ,0::numeric(15,5) ddqtsi --0 - ,0::numeric(15,5) fgqshp --0 - ,0::numeric(15,5) diqtsh --0 - ,sum(coalesce(fb_qty,0)) fb_qty --history value - ,sum(coalesce(fb_cst_loc,0)) fb_cst_loc --history part mix - ,sum(coalesce(fb_cst_loc_cur,0)) fb_cst_loc_cur --master data - ,sum(coalesce(fb_cst_loc_fut,0)) fb_cst_loc_fut --master data - ,sum(coalesce(fb_val_loc,0)) fb_val_loc --history value - ,sum(coalesce(fb_val_loc_pl,0)) fb_val_loc_pl --0 - ,calc_status --0 - ,flag --0 - ,null::date orderdate --history date mix - ,null::date requestdate --history date mix - ,null::date shipdate --history date mix - ,null::date adj_orderdate --history - ,null::date adj_requestdate --history - ,null::date adj_shipdate --history - ,'b20' "version" --calculated - ,'adjustment' iter --calculated - ---------------ui columns------------------------- - ,null::numeric order_season - ,null::text order_month - ,null::numeric ship_season - ,null::text ship_month - ,null::numeric request_season - ,null::text request_month - ,part_descr - ,part_family - ,part_group - ,branding - ,color - ,segm - ,bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,mod_chan - ,mod_chansub - ,quota_rep_descr - ,director_descr - ,null value_loc - ,null value_usd - ,null cost_loc - ,null cost_usd - ,null units + --fspr in next step + o.plnt + --promo in next step + --terms in next step + ,o.bill_cust_descr + ,o.ship_cust_descr + ,o.dsm + ,o.quota_rep_descr + ,o.director + ,o.billto_group + ,o.shipto_group + ,o.chan + ,o.chansub + ,o.chan_retail + ,o.part + ,o.part_descr + ,o.part_group + ,o.branding + ,o.majg_descr + ,o.ming_descr + ,o.majs_descr + ,o.mins_descr + ,o.segm + ,o.fs_line + ,o.r_currency + ,o.r_rate + ,o.c_currency + ,o.c_rate + ,sum(coalesce(o.units,0)) units + ,sum(coalesce(o.value_loc,0)) value_loc + ,sum(coalesce(o.value_usd,0)) value_usd + ,sum(coalesce(o.cost_loc,0)) cost_usd + ,o.calc_status + ,o.flag FROM - rlarp.osm_fcpool + rlarp.osm_pool o WHERE -----------------scenario---------------------------- where_clause @@ -305,188 +232,103 @@ SELECT AND CASE (SELECT flag FROM flagv) WHEN 'scale all' THEN true WHEN 'scale copy' THEN iter = 'copy' - WHEN 'scale new part' THEN iterdef->>'type' = 'new basket' + WHEN 'scale new part' THEN module = 'new basket' END AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments - AND adj_orderdate <= adj_shipdate + AND order_date <= ship_date GROUP BY - plnt ---master data - ,terms - ,remit_to --master data - ,bill_class --master data - ,bill_cust --history cust mix - ,bill_rep --master data - ,bill_terr --master data - ,ship_class --master data - ,ship_cust --history cust mix - ,ship_rep --master data - ,ship_terr --master data - ,quota_rep --master data - ,account --master data - ,shipgrp --master data - ,geo --master data - ,chan --master data - ,orig_ctry --master data - ,orig_prov --master data - ,orig_post --master data - ,dest_ctry --master data - ,dest_prov --master data - ,dest_post --master data - ,part --history part mix - ,ord_gldc --master data - ,majg --master data - ,ming --master data - ,majs --master data - ,mins --master data - ,gldc --master data - ,glec --master data - ,harm --master data - ,clss --master data - ,brand --master data - ,assc --master data - ,fs_line --master data - ,r_currency --history cust mix - ,r_rate --master data - ,c_currency --master data - ,c_rate --master data - ,calc_status - ,flag - ,part_descr - ,part_family - ,part_group - ,branding - ,color - ,segm - ,bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,mod_chan - ,mod_chansub - ,quota_rep_descr - ,director_descr + --fspr in next step + o.plnt + --promo in next step + --terms in next step + ,o.bill_cust_descr + ,o.ship_cust_descr + ,o.dsm + ,o.quota_rep_descr + ,o.director + ,o.billto_group + ,o.shipto_group + ,o.chan + ,o.chansub + ,o.chan_retail + ,o.part + ,o.part_descr + ,o.part_group + ,o.branding + ,o.majg_descr + ,o.ming_descr + ,o.majs_descr + ,o.mins_descr + ,o.segm + ,o.fs_line + ,o.r_currency + ,o.r_rate + ,o.c_currency + ,o.c_rate + ,o.calc_status + ,o.flag ) ,vscale AS ( SELECT (SELECT vincr::numeric FROM target) incr - ,(SELECT sum(fb_qty) FROM basemix) base - ,(SELECT vincr::numeric FROM target)/(SELECT sum(fb_qty) FROM basemix) factor + ,(SELECT sum(units) FROM basemix) base + ,(SELECT vincr::numeric FROM target)/(SELECT sum(units) FROM basemix) factor ) --select * from SCALE +,log AS ( + INSERT INTO rlarp.osm_log(doc) SELECT $$replace_iterdef$$::jsonb doc RETURNING * +) ,volume AS ( SELECT - b.plnt --master data - ,b."ddord#" --0 - ,b."dditm#" --0 - ,b."fgbol#" --0 - ,b."fgent#" --0 - ,b."diinv#" --0 - ,b."dilin#" --0 - ,m.promo --history date mix - ,b.return_reas --0 - ,b.terms --history cust mix - ,b.custpo --0 - ,b.dhincr --0 - ,b.diext --0 - ,b.ditdis --0 - ,b.dcodat --calculated date mix - ,b.ddqdat --calculated date mix - ,b.dcmdat --calculated date mix - ,b.dhidat --calculated date mix - ,b.fspr --calculated date mix - ,b.remit_to --master data - ,b.bill_class --master data - ,b.bill_cust --history cust mix - ,b.bill_rep --master data - ,b.bill_terr --master data - ,b.ship_class --master data - ,b.ship_cust --history cust mix - ,b.ship_rep --master data - ,b.ship_terr --master data - ,b.quota_rep --master data - ,b.account --master data - ,b.shipgrp --master data - ,b.geo --master data - ,b.chan --master data - ,b.orig_ctry --master data - ,b.orig_prov --master data - ,b.orig_post --master data - ,b.dest_ctry --master data - ,b.dest_prov --master data - ,b.dest_post --master data - ,b.part --history part mix - ,b.ord_gldc --master data - ,b.majg --master data - ,b.ming --master data - ,b.majs --master data - ,b.mins --master data - ,b.gldc --master data - ,b.glec --master data - ,b.harm --master data - ,b.clss --master data - ,b.brand --master data - ,b.assc --master data - ,b.fs_line --master data - ,b.r_currency --history cust mix - ,b.r_rate --master data - ,b.c_currency --master data - ,b.c_rate --master data - ,b.ddqtoi --0 - ,b.ddqtsi --0 - ,b.fgqshp --0 - ,b.diqtsh --0 - ,b.fb_qty*s.factor*m.momix fb_qty - ,b.fb_cst_loc*s.factor*m.momix fb_cst_loc - ,b.fb_cst_loc_cur*s.factor*m.momix fb_cst_loc_cur - ,b.fb_cst_loc_fut*s.factor*m.momix fb_cst_loc_fut - ,b.fb_val_loc*s.factor*m.momix fb_val_loc - ,b.fb_val_loc_pl*s.factor*m.momix fb_val_loc_pl - ,b.calc_status --0 - ,b.flag --0 - ,make_date(mseq.yr + 2020,mseq.cal,m.odom) orderdate - ,make_date(mseq.yr + 2020,mseq.cal,m.odom) + rlag requestdate - ,make_date(mseq.yr + 2020,mseq.cal,m.odom) + rlag + slag shipdate - ,make_date(mseq.yr + 2020,mseq.cal,m.odom) adj_orderdate - ,make_date(mseq.yr + 2020,mseq.cal,m.odom) + rlag adj_requestdate - ,make_date(mseq.yr + 2020,mseq.cal,m.odom) + rlag + slag adj_shipdate - ,'replace_version' "version" --calculated - ,'replace_source'||' volume' iter - -----------------------ui columns-------------------------------- - ,'replace_iterdet' iterdet - ,$$replace_iterdef$$::jsonb iterdef - ,od.ssyr order_season - ,to_char(make_date(mseq.yr + 2020,mseq.cal,m.odom),'Mon') order_month - ,sd.ssyr ship_season - ,to_char(make_date(mseq.yr + 2020,mseq.cal,m.odom) + rlag + slag,'Mon') ship_month - ,rd.ssyr request_season - ,to_char(make_date(mseq.yr + 2020,mseq.cal,m.odom) + rlag,'Mon') request_month + sd.fspr + ,b.plnt + ,m.promo + ,b.terms + ,b.bill_cust_descr + ,b.ship_cust_descr + ,b.dsm + ,b.quota_rep_descr + ,b.director + ,b.billto_group + ,b.shipto_group + ,b.chan + ,b.chansub + ,b.chan_retail + ,b.part ,b.part_descr - ,b.part_family ,b.part_group ,b.branding - ,b.color - ,b.segm - ,b.bill_cust_descr - ,b.billto_group - ,b.ship_cust_descr - ,b.shipto_group ,b.majg_descr ,b.ming_descr ,b.majs_descr ,b.mins_descr - ,b.mod_chan - ,b.mod_chansub - ,b.quota_rep_descr - ,b.director_descr - ,b.fb_val_loc*s.factor*m.momix value_loc - ,b.fb_val_loc*s.factor*m.momix*r_rate value_usd - ,b.fb_cst_loc*s.factor*m.momix cost_loc - ,b.fb_cst_loc*s.factor*m.momix*c_rate cost_usd - ,(b.fb_qty*s.factor*m.momix) units + ,b.segm + ,b.fs_line + ,b.r_currency + ,b.r_rate + ,b.c_currency + ,b.c_rate + ,b.units*s.factor*m.momix units + ,b.value_loc*s.factor*m.momix value_loc + ,b.value_usd*s.factor*m.momix value_usd + ,b.cost_loc*s.factor*m.momix cost_loc + ,b.cost_usd*s.factor*m.momix cost_usd + ,b.calc_status + ,b.flag + ,make_date(mseq.yr + 2020,mseq.cal,m.odom) order_date + ,to_char(make_date(mseq.yr + 2020,mseq.cal,m.odom),'Mon') order_month + ,od.ssyr order_season + ,make_date(mseq.yr + 2020,mseq.cal,m.odom) + rlag request_date + ,to_char(make_date(mseq.yr + 2020,mseq.cal,m.odom) + rlag,'Mon') request_month + ,rd.ssyr request_season + ,make_date(mseq.yr + 2020,mseq.cal,m.odom) + rlag + slag ship_date + ,to_char(make_date(mseq.yr + 2020,mseq.cal,m.odom) + rlag + slag,'Mon') ship_month + ,sd.ssyr ship_season + ,'replace_version' "version" + ,'replace_source'||' volume' iter + ,log.id + ,COALESCE(log.doc->>'message','') "comment" + ,log.doc->>'type' module FROM basemix b CROSS JOIN vscale s @@ -506,16 +348,16 @@ WHERE ,pscale AS ( SELECT (SELECT pincr::numeric FROM target) incr - ,(SELECT sum(fb_val_loc * r_rate) FROM volume) base - ,CASE WHEN (SELECT sum(fb_val_loc * r_rate) FROM volume) = 0 THEN + ,(SELECT sum(value_loc * r_rate) FROM volume) base + ,CASE WHEN (SELECT sum(value_loc * r_rate) FROM volume) = 0 THEN 0 ELSE - ((SELECT pincr::numeric FROM target) - (SELECT sum(fb_val_loc * r_rate) FROM volume))/(SELECT sum(fb_val_loc * r_rate) FROM volume) + ((SELECT pincr::numeric FROM target) - (SELECT sum(value_loc * r_rate) FROM volume))/(SELECT sum(value_loc * r_rate) FROM volume) END factor - ,CASE WHEN (SELECT sum(fb_val_loc * r_rate) FROM volume) = 0 THEN - CASE WHEN ((SELECT pincr::numeric FROM target) - (SELECT sum(fb_val_loc * r_rate) FROM volume)) <> 0 THEN + ,CASE WHEN (SELECT sum(value_loc * r_rate) FROM volume) = 0 THEN + CASE WHEN ((SELECT pincr::numeric FROM target) - (SELECT sum(value_loc * r_rate) FROM volume)) <> 0 THEN --if the base value is -0- but the target value hasn't been achieved, derive a price to apply - ((SELECT pincr::numeric FROM target) - (SELECT sum(fb_val_loc * r_rate) FROM volume))/(SELECT sum(fb_qty) FROM volume) + ((SELECT pincr::numeric FROM target) - (SELECT sum(value_loc * r_rate) FROM volume))/(SELECT sum(units) FROM volume) ELSE 0 END @@ -525,113 +367,55 @@ WHERE ) ,price AS ( SELECT - b.plnt --master data - ,b."ddord#" --0 - ,b."dditm#" --0 - ,b."fgbol#" --0 - ,b."fgent#" --0 - ,b."diinv#" --0 - ,b."dilin#" --0 - ,b.promo --history date mix - ,b.return_reas --0 - ,b.terms --history cust mix - ,b.custpo --0 - ,b.dhincr --0 - ,b.diext --0 - ,b.ditdis --0 - ,b.dcodat --calculated date mix - ,b.ddqdat --calculated date mix - ,b.dcmdat --calculated date mix - ,b.dhidat --calculated date mix - ,b.fspr --calculated date mix - ,b.remit_to --master data - ,b.bill_class --master data - ,b.bill_cust --history cust mix - ,b.bill_rep --master data - ,b.bill_terr --master data - ,b.ship_class --master data - ,b.ship_cust --history cust mix - ,b.ship_rep --master data - ,b.ship_terr --master data - ,b.quota_rep --master data - ,b.account --master data - ,b.shipgrp --master data - ,b.geo --master data - ,b.chan --master data - ,b.orig_ctry --master data - ,b.orig_prov --master data - ,b.orig_post --master data - ,b.dest_ctry --master data - ,b.dest_prov --master data - ,b.dest_post --master data - ,b.part --history part mix - ,b.ord_gldc --master data - ,b.majg --master data - ,b.ming --master data - ,b.majs --master data - ,b.mins --master data - ,b.gldc --master data - ,b.glec --master data - ,b.harm --master data - ,b.clss --master data - ,b.brand --master data - ,b.assc --master data - ,b.fs_line --master data - ,b.r_currency --history cust mix - ,b.r_rate --master data - ,b.c_currency --master data - ,b.c_rate --master data - ,b.ddqtoi --0 - ,b.ddqtsi --0 - ,b.fgqshp --0 - ,b.diqtsh --0 - ,0 fb_qty - ,0 fb_cst_loc - ,0 fb_cst_loc_cur - ,0 fb_cst_loc_fut - ,b.fb_val_loc*p.factor fb_val_loc - ,b.fb_val_loc_pl*p.factor fb_val_loc_pl - ,b.calc_status --0 - ,b.flag --0 - ,b.orderdate - ,b.requestdate - ,b.shipdate - ,b.adj_orderdate - ,b.adj_requestdate - ,b.adj_shipdate - ,'replace_version' "version" --calculated - ,'replace_source'||' price' iter --calculateds - ,'replace_iterdet' iterdet - ,$$replace_iterdef$$::jsonb iterdef - ,b.order_season - ,b.order_month - ,b.ship_season - ,b.ship_month - ,b.request_season - ,b.request_month +sd.fspr + ,b.plnt + ,m.promo + ,b.terms + ,b.bill_cust_descr + ,b.ship_cust_descr + ,b.dsm + ,b.quota_rep_descr + ,b.director + ,b.billto_group + ,b.shipto_group + ,b.chan + ,b.chansub + ,b.chan_retail + ,b.part ,b.part_descr - ,b.part_family ,b.part_group ,b.branding - ,b.color - ,b.segm - ,b.bill_cust_descr - ,b.billto_group - ,b.ship_cust_descr - ,b.shipto_group ,b.majg_descr ,b.ming_descr ,b.majs_descr ,b.mins_descr - ,b.mod_chan - ,b.mod_chansub - ,b.quota_rep_descr - ,b.director_descr - ,(CASE WHEN p.factor = 0 THEN b.fb_qty * p.mod_price/b.r_rate ELSE b.fb_val_loc*p.factor END)::numeric value_loc - ,(CASE WHEN p.factor = 0 THEN b.fb_qty * p.mod_price ELSE b.fb_val_loc*p.factor END)::numeric value_usd - ,0 cost_loc - ,0 cost_usd - ,0 units + ,b.segm + ,b.fs_line + ,b.r_currency + ,b.r_rate + ,b.c_currency + ,b.c_rate + ,0::numeric units + ,(CASE WHEN p.factor = 0 THEN b.units * p.mod_price/b.r_rate ELSE b.value_loc*p.factor END)::numeric value_loc + ,(CASE WHEN p.factor = 0 THEN b.units * p.mod_price ELSE b.value_usd*p.factor END)::numeric value_usd + ,0::numeric cost_loc + ,0::numeric cost_usd + ,b.calc_status + ,b.flag + ,b.order_date + ,b.order_month + ,b.order_season + ,b.request_date + ,b.request_month + ,b.request_season + ,b.ship_date + ,b.ship_month + ,b.ship_season + ,'replace_version' "version" + ,'replace_source'||' volume' iter + ,log.id + ,COALESCE(log.doc->>'message','') "comment" + ,log.doc->>'type' module FROM volume b CROSS JOIN pscale p @@ -639,74 +423,86 @@ FROM p.factor <> 0 or p.mod_price <> 0 ) , ins AS ( - INSERT INTO rlarp.osm_fcpool (SELECT * FROM price UNION ALL SELECT * FROM volume) RETURNING * + INSERT INTO rlarp.osm_pool (SELECT * FROM price UNION ALL SELECT * FROM volume) RETURNING * ) ,insagg AS ( -SELECT - bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,quota_rep_descr - ,director_descr - ,segm - ,mod_chan - ,mod_chansub - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,brand - ,part_family - ,part_group - ,branding - ,color - ,part_descr - ,order_season - ,order_month - ,ship_season - ,ship_month - ,request_season - ,request_month - ,promo - ,version - ,iter - ,sum(value_loc) value_loc - ,sum(value_usd) value_usd - ,sum(cost_loc) cost_loc - ,sum(cost_usd) cost_usd - ,sum(units) units -FROM - ins -GROUP BY - bill_cust_descr - ,billto_group - ,ship_cust_descr - ,shipto_group - ,quota_rep_descr - ,director_descr - ,segm - ,mod_chan - ,mod_chansub - ,majg_descr - ,ming_descr - ,majs_descr - ,mins_descr - ,brand - ,part_family - ,part_group - ,branding - ,color - ,part_descr - ,order_season - ,order_month - ,ship_season - ,ship_month - ,request_season - ,request_month - ,promo - ,version - ,iter + SELECT + ---------customer info----------------- + bill_cust_descr + ,billto_group + ,ship_cust_descr + ,shipto_group + ,quota_rep_descr + ,director + ,segm + ,chan + ,chansub + ---------product info------------------ + ,majg_descr + ,ming_descr + ,majs_descr + ,mins_descr + --,brand + --,part_family + ,part_group + ,branding + --,color + ,part_descr + ---------dates------------------------- + ,order_season + ,order_month + ,ship_season + ,ship_month + ,request_season + ,request_month + ,promo + ,version + ,iter + ,logid + ,comment + ,module + --------values------------------------- + ,sum(value_loc) value_loc + ,sum(value_usd) value_usd + ,sum(cost_loc) cost_loc + ,sum(cost_usd) cost_usd + ,sum(units) units + FROM + ins + GROUP BY + ---------customer info----------------- + bill_cust_descr + ,billto_group + ,ship_cust_descr + ,shipto_group + ,quota_rep_descr + ,director + ,segm + ,chan + ,chansub + ---------product info------------------ + ,majg_descr + ,ming_descr + ,majs_descr + ,mins_descr + --,brand + --,part_family + ,part_group + ,branding + --,color + ,part_descr + ---------dates------------------------- + ,order_season + ,order_month + ,ship_season + ,ship_month + ,request_season + ,request_month + ,promo + ,version + ,iter + ,logid + ,comment + ,module ) ---SELECT * FROM insagg -SELECT json_agg(row_to_json(insagg)) x from insagg +SELECT json_agg(row_to_json(insagg)) x from insagg \ No newline at end of file