commit: 2025-04-09 00:03:53
This commit is contained in:
parent
044e605dd4
commit
e1b19482db
@ -139,291 +139,291 @@ CREATE TABLE rlarp.orphans AS (
|
||||
-- )
|
||||
-- -- select * from checkc
|
||||
-- -- SELECT cust, sum(fb_qty) FROM newc LEFT OUTER JOIN profile ON shipgrp = cust GROUP by cust
|
||||
-- ----grouped prices-------------
|
||||
-- ,npgrp AS (
|
||||
----grouped prices-------------
|
||||
,npgrp AS (
|
||||
SELECT
|
||||
o.bill_dba
|
||||
,o.ship_dba
|
||||
,o.bill_cust
|
||||
,o.ship_cust
|
||||
,o.promo
|
||||
,o.terms
|
||||
,o.dsm
|
||||
,o.part
|
||||
,o.odate
|
||||
,o.qtyord
|
||||
,i.nwht * CASE WHEN i.nwun = 'KG' THEN 2.2 ELSE 1 END lbs
|
||||
,i.mpck pltq
|
||||
,ROUND(o.sales_usd / o.qty,5) price
|
||||
,(o.pricing->>'guidance_price')::NUMERIC guidance
|
||||
,(o.pricing->>'floor' )::numeric(15,5) floor
|
||||
,(o.pricing->>'ceiling')::numeric(15,5) ceiling
|
||||
,(o.pricing->>'uselimits')::boolean uselimits
|
||||
FROM
|
||||
rlarp.osm_stack o
|
||||
INNER JOIN "CMS.CUSLG".itemm i ON
|
||||
i.item = o.part
|
||||
INNER JOIN checkc c ON
|
||||
c.shipgrp = o.customer
|
||||
AND c.oseas = o.oseas
|
||||
WHERE
|
||||
VERSION = 'Actual'
|
||||
AND o.oseas >= 2018
|
||||
AND calc_status <> 'CANCELED'
|
||||
AND o.fs_line = '41010'
|
||||
AND o.part <> ''
|
||||
AND substring(o.glec,1,1) <= '2'
|
||||
AND o.qty <> 0
|
||||
AND o.sseas IS NOT NULL
|
||||
-- AND customer in (select distinct renamed FROM newc )
|
||||
GROUP BY
|
||||
o.bill_dba
|
||||
,o.ship_dba
|
||||
,o.dsm
|
||||
,i.partgroup
|
||||
,i.pricegroup
|
||||
,o.part
|
||||
,o.odate
|
||||
,o.qtyord
|
||||
,o.pounds
|
||||
,o.pallets
|
||||
,ROUND(o.sales_usd / o.qty,5)
|
||||
,i.nwht * CASE WHEN i.nwun = 'KG' THEN 2.2 ELSE 1 END
|
||||
,i.mpck
|
||||
,(o.pricing->>'guidance_price')::NUMERIC
|
||||
,(o.pricing->>'floor' )::numeric(15,5)
|
||||
,(o.pricing->>'ceiling')::numeric(15,5)
|
||||
,(o.pricing->>'uselimits')::boolean
|
||||
)
|
||||
----sequenced for most recent price------------
|
||||
,nseq AS (
|
||||
SELECT
|
||||
bill_dba
|
||||
,ship_dba
|
||||
,part
|
||||
,odate
|
||||
,qtyord
|
||||
,lbs
|
||||
,pltq
|
||||
,price
|
||||
,guidance
|
||||
,floor
|
||||
,ceiling
|
||||
,uselimits
|
||||
,row_number() OVER (PARTITION BY bill_dba, ship_dba, part ORDER BY odate desc) rn
|
||||
,round(avg(price) over (PARTITION BY bill_dba, ship_dba, part),5) avgprice
|
||||
FROM
|
||||
npgrp
|
||||
)
|
||||
-- SELECT * FROM seq WHERE rn = 1
|
||||
,ngrp AS (
|
||||
SELECT
|
||||
sg.fspr
|
||||
,i.dplt
|
||||
,o.promo
|
||||
,o.terms
|
||||
,o.bill_cust
|
||||
,o.ship_cust
|
||||
,o.dsm
|
||||
,o.dsm
|
||||
,null:: director
|
||||
,o.account
|
||||
,o.shipgrp
|
||||
,o.chan
|
||||
,o.chansub
|
||||
,null::channel_retail
|
||||
,i.partgroup
|
||||
,i.pricegroup
|
||||
,o.part
|
||||
,o.part || ' - ' || i.descr
|
||||
,i.partgroup
|
||||
,i.branding
|
||||
,i.majgd majg_descr
|
||||
,i.mingd ming_descr
|
||||
,i.majsd majs_descr
|
||||
,i.minsd mins_descr
|
||||
,seg.segm
|
||||
,CASE WHEN i.majg = '610' THEN 'Fiber' ELSE 'Plastic' END substance
|
||||
,o.fs_line
|
||||
,o.r_currency
|
||||
,rx.rate r_rate
|
||||
,pl.curr c_currency
|
||||
,rx.rate r_rate
|
||||
,pl.curr c_currency
|
||||
,cx.rate c_rate
|
||||
,ROUND(sum(fb_qty * lbs),5) lbs
|
||||
,ROUND(sum(fb_qty),2) qty
|
||||
,ROUND(sum(fb_val_loc * r_rate),2) sales_usd
|
||||
,ROUND(sum(fb_cst_loc_cur * c_rate),2) cost_curstd_usd
|
||||
,'CLOSED' calc_status
|
||||
,'SHIPMENT' flag
|
||||
,o.odate
|
||||
,o.oseas
|
||||
,o.odate
|
||||
,og.sortmo omon
|
||||
,o.sseas
|
||||
,o.sdate
|
||||
,sg.sortmo smon
|
||||
-- ,o.calc_status
|
||||
FROM
|
||||
profile o
|
||||
LEFT OUTER JOIN rlarp.gld og ON
|
||||
o.odate BETWEEN og.sdat and og.edat
|
||||
LEFT OUTER JOIN rlarp.gld sg ON
|
||||
o.sdate BETWEEN sg.sdat and sg.edat
|
||||
LEFT OUTER JOIN "CMS.CUSLG".itemm i ON
|
||||
i.item = o.part
|
||||
LEFT OUTER JOIN seg ON
|
||||
seg.glec = i.glec
|
||||
LEFT OUTER JOIN rlarp.plpr pl ON
|
||||
pl.plnt = i.dplt
|
||||
LEFT OUTER JOIN rlarp.ffcret cx ON
|
||||
cx.perd = pl.gl AND
|
||||
cx.rtyp = 'MA' AND
|
||||
cx.fcur = pl.curr AND
|
||||
cx.tcur = 'US'
|
||||
LEFT OUTER JOIN rlarp.ffcret rx ON
|
||||
rx.perd = pl.gl AND
|
||||
rx.rtyp = 'MA' AND
|
||||
rx.fcur = b.r_currency AND
|
||||
rx.tcur = 'US'
|
||||
WHERE
|
||||
true
|
||||
-- iter IN ('actuals','actuals_plug','copy')
|
||||
AND fs_line = '41010'
|
||||
AND substring(o.glec,1,1) <= '2'
|
||||
AND o.calc_status <> 'CANCELED'
|
||||
AND o.sseas IS NOT NULL
|
||||
GROUP BY
|
||||
o.account
|
||||
,o.shipgrp
|
||||
,o.chan
|
||||
,o.dsm
|
||||
,i.partgroup
|
||||
,i.pricegroup
|
||||
,o.part
|
||||
,o.glec
|
||||
,o.oseas
|
||||
,o.odate
|
||||
,og.sortmo
|
||||
,o.sseas
|
||||
,o.sdate
|
||||
,sg.sortmo
|
||||
-- ,o.calc_status
|
||||
)
|
||||
-- SELECT * FROM ngrp
|
||||
,nguid AS (
|
||||
SELECT
|
||||
grp.account
|
||||
,grp.shipgrp
|
||||
,grp.chan
|
||||
,r.repp dsm
|
||||
,r.director
|
||||
,grp.shipgrp||'.'||r.repp lu
|
||||
-- ,grp.partgroup
|
||||
-- ,grp.pricegroup
|
||||
,grp.part
|
||||
-- ,grp.glec
|
||||
,2026 oseas
|
||||
,grp.omon
|
||||
,grp.odate
|
||||
,(2026- grp.oseas) + grp.sseas sseas
|
||||
,grp.smon
|
||||
,grp.sdate
|
||||
,grp.lbs
|
||||
,grp.qty
|
||||
,grp.sales_usd
|
||||
,CASE WHEN round(grp.sales_usd/grp.qty,5) = 0 THEN null ELSE round(grp.sales_usd/grp.qty,5) END hist_price
|
||||
,grp.cost_curstd_usd
|
||||
,sum(grp.lbs) OVER (PARTITION BY shipgrp, dsm) shiplbs
|
||||
,CASE WHEN seq.floor = 0 THEN null else seq.floor END floor
|
||||
,CASE WHEN seq.ceiling = 0 THEN null else seq.ceiling END ceiling
|
||||
,seq.uselimits
|
||||
,seq.price
|
||||
,seq.avgprice
|
||||
,seq.pltq
|
||||
,ROUND(CASE WHEN seq.uselimits THEN
|
||||
CASE
|
||||
WHEN glec = '1NU' THEN
|
||||
--if more than 8/24 pallets, use floor
|
||||
CASE WHEN grp.qty >= 24*seq.pltq THEN seq.floor
|
||||
-- if more than a pallet use the target price
|
||||
ELSE CASE WHEN qtyord >= 8*seq.pltq THEN (seq.ceiling + seq.floor) / 2
|
||||
-- if more than a pallet use the target price
|
||||
ELSE CASE WHEN qtyord >= 2*seq.pltq THEN seq.ceiling
|
||||
-- if more than a pallet use the target price
|
||||
ELSE seq.ceiling * 1.05
|
||||
END END END
|
||||
ELSE
|
||||
CASE WHEN pricegroup ~ '(Hanger|Dish)' THEN
|
||||
--at least 1 pallets is lower limit
|
||||
CASE WHEN qtyord >= 01*seq.pltq THEN seq.floor
|
||||
--at least 2 pallets is mid range
|
||||
ELSE CASE WHEN qtyord >= 0.5*seq.pltq THEN (seq.ceiling + seq.floor) / 2
|
||||
--less than a pallet is upper + 15%
|
||||
ELSE seq.ceiling
|
||||
END END
|
||||
ELSE
|
||||
--at least 8 pallets is lower limit
|
||||
CASE WHEN qtyord >= 08*seq.pltq THEN seq.floor
|
||||
--at least 2 pallets is mid range
|
||||
ELSE CASE WHEN qtyord >= 2*seq.pltq THEN (seq.ceiling + seq.floor) / 2
|
||||
--at least 1 pallet is upper range
|
||||
ELSE CASE WHEN qtyord >= 1*seq.pltq THEN seq.ceiling
|
||||
--less than a pallet is upper + 15%
|
||||
ELSE seq.ceiling * 1.15
|
||||
END END END
|
||||
END
|
||||
END
|
||||
ELSE
|
||||
null
|
||||
END,5) guid
|
||||
FROM
|
||||
ngrp grp
|
||||
LEFT OUTER JOIN nseq seq ON
|
||||
seq.ship_dba = grp.shipgrp
|
||||
AND seq.bill_dba = grp.account
|
||||
AND seq.part = grp.part
|
||||
AND seq.rn = 1
|
||||
LEFT OUTER JOIN rlarp.repc r ON
|
||||
r.rcode = grp.dsm
|
||||
)
|
||||
select * from nguid
|
||||
|
||||
-- ,orphans AS (
|
||||
-- SELECT
|
||||
-- o.bill_dba
|
||||
-- ,o.ship_dba
|
||||
-- ,o.bill_cust
|
||||
-- ,o.ship_cust
|
||||
-- ,o.promo
|
||||
-- ,o.terms
|
||||
-- ,o.dsm
|
||||
-- ,o.part
|
||||
-- ,o.odate
|
||||
-- ,o.qtyord
|
||||
-- ,i.nwht * CASE WHEN i.nwun = 'KG' THEN 2.2 ELSE 1 END lbs
|
||||
-- ,i.mpck pltq
|
||||
-- ,ROUND(o.sales_usd / o.qty,5) price
|
||||
-- ,(o.pricing->>'guidance_price')::NUMERIC guidance
|
||||
-- ,(o.pricing->>'floor' )::numeric(15,5) floor
|
||||
-- ,(o.pricing->>'ceiling')::numeric(15,5) ceiling
|
||||
-- ,(o.pricing->>'uselimits')::boolean uselimits
|
||||
-- FROM
|
||||
-- rlarp.osm_stack o
|
||||
-- INNER JOIN "CMS.CUSLG".itemm i ON
|
||||
-- i.item = o.part
|
||||
-- INNER JOIN checkc c ON
|
||||
-- c.shipgrp = o.customer
|
||||
-- AND c.oseas = o.oseas
|
||||
-- WHERE
|
||||
-- VERSION = 'Actual'
|
||||
-- AND o.oseas >= 2018
|
||||
-- AND calc_status <> 'CANCELED'
|
||||
-- AND o.fs_line = '41010'
|
||||
-- AND o.part <> ''
|
||||
-- AND substring(o.glec,1,1) <= '2'
|
||||
-- AND o.qty <> 0
|
||||
-- AND o.sseas IS NOT NULL
|
||||
-- -- AND customer in (select distinct renamed FROM newc )
|
||||
-- GROUP BY
|
||||
-- o.bill_dba
|
||||
-- ,o.ship_dba
|
||||
-- ,o.dsm
|
||||
-- ,i.partgroup
|
||||
-- ,i.pricegroup
|
||||
-- ,o.part
|
||||
-- ,o.odate
|
||||
-- ,o.qtyord
|
||||
-- ,o.pounds
|
||||
-- ,o.pallets
|
||||
-- ,ROUND(o.sales_usd / o.qty,5)
|
||||
-- ,i.nwht * CASE WHEN i.nwun = 'KG' THEN 2.2 ELSE 1 END
|
||||
-- ,i.mpck
|
||||
-- ,(o.pricing->>'guidance_price')::NUMERIC
|
||||
-- ,(o.pricing->>'floor' )::numeric(15,5)
|
||||
-- ,(o.pricing->>'ceiling')::numeric(15,5)
|
||||
-- ,(o.pricing->>'uselimits')::boolean
|
||||
-- )
|
||||
-- ----sequenced for most recent price------------
|
||||
-- ,nseq AS (
|
||||
-- SELECT
|
||||
-- bill_dba
|
||||
-- ,ship_dba
|
||||
-- account
|
||||
-- ,shipgrp
|
||||
-- ,chan
|
||||
-- ,dsm
|
||||
-- ,director
|
||||
-- ,lu
|
||||
-- --,partgroup
|
||||
-- --,pricegroup
|
||||
-- ,part
|
||||
-- ,odate
|
||||
-- ,qtyord
|
||||
-- -- ,glec
|
||||
-- ,oseas
|
||||
-- ,omon
|
||||
-- -- ,odate
|
||||
-- ,sseas
|
||||
-- ,smon
|
||||
-- -- ,sdate
|
||||
-- ,lbs
|
||||
-- ,pltq
|
||||
-- ,price
|
||||
-- ,guidance
|
||||
-- ,qty
|
||||
-- ,sales_usd
|
||||
-- ,hist_price
|
||||
-- ,cost_curstd_usd
|
||||
-- ,shiplbs
|
||||
-- ,floor
|
||||
-- ,ceiling
|
||||
-- ,uselimits
|
||||
-- ,row_number() OVER (PARTITION BY bill_dba, ship_dba, part ORDER BY odate desc) rn
|
||||
-- ,round(avg(price) over (PARTITION BY bill_dba, ship_dba, part),5) avgprice
|
||||
-- ,price
|
||||
-- ,avgprice
|
||||
-- ,pltq
|
||||
-- ,guid
|
||||
-- ,least(hist_price, price, avgprice) lowest_last
|
||||
-- ,least(hist_price, price, avgprice, floor) lowest_floor
|
||||
-- FROM
|
||||
-- npgrp
|
||||
-- nguid
|
||||
-- )
|
||||
-- -- SELECT * FROM seq WHERE rn = 1
|
||||
-- ,ngrp AS (
|
||||
-- SELECT
|
||||
-- sg.fspr
|
||||
-- ,i.dplt
|
||||
-- ,o.promo
|
||||
-- ,o.terms
|
||||
-- ,o.bill_cust
|
||||
-- ,o.ship_cust
|
||||
-- ,o.dsm
|
||||
-- ,o.dsm
|
||||
-- ,null:: director
|
||||
-- ,o.account
|
||||
-- ,o.shipgrp
|
||||
-- ,o.chan
|
||||
-- ,o.chansub
|
||||
-- ,null::channel_retail
|
||||
-- ,i.partgroup
|
||||
-- ,i.pricegroup
|
||||
-- ,o.part
|
||||
-- ,o.part || ' - ' || i.descr
|
||||
-- ,i.partgroup
|
||||
-- ,i.branding
|
||||
-- ,i.majgd majg_descr
|
||||
-- ,i.mingd ming_descr
|
||||
-- ,i.majsd majs_descr
|
||||
-- ,i.minsd mins_descr
|
||||
-- ,seg.segm
|
||||
-- ,CASE WHEN i.majg = '610' THEN 'Fiber' ELSE 'Plastic' END substance
|
||||
-- ,o.fs_line
|
||||
-- ,o.r_currency
|
||||
-- ,rx.rate r_rate
|
||||
-- ,pl.curr c_currency
|
||||
-- ,rx.rate r_rate
|
||||
-- ,pl.curr c_currency
|
||||
-- ,cx.rate c_rate
|
||||
-- ,ROUND(sum(fb_qty * lbs),5) lbs
|
||||
-- ,ROUND(sum(fb_qty),2) qty
|
||||
-- ,ROUND(sum(fb_val_loc * r_rate),2) sales_usd
|
||||
-- ,ROUND(sum(fb_cst_loc_cur * c_rate),2) cost_curstd_usd
|
||||
-- ,'CLOSED' calc_status
|
||||
-- ,'SHIPMENT' flag
|
||||
-- ,o.odate
|
||||
-- ,o.oseas
|
||||
-- ,o.odate
|
||||
-- ,og.sortmo omon
|
||||
-- ,o.sseas
|
||||
-- ,o.sdate
|
||||
-- ,sg.sortmo smon
|
||||
-- -- ,o.calc_status
|
||||
-- FROM
|
||||
-- profile o
|
||||
-- LEFT OUTER JOIN rlarp.gld og ON
|
||||
-- o.odate BETWEEN og.sdat and og.edat
|
||||
-- LEFT OUTER JOIN rlarp.gld sg ON
|
||||
-- o.sdate BETWEEN sg.sdat and sg.edat
|
||||
-- LEFT OUTER JOIN "CMS.CUSLG".itemm i ON
|
||||
-- i.item = o.part
|
||||
-- LEFT OUTER JOIN seg ON
|
||||
-- seg.glec = i.glec
|
||||
-- LEFT OUTER JOIN rlarp.plpr pl ON
|
||||
-- pl.plnt = i.dplt
|
||||
-- LEFT OUTER JOIN rlarp.ffcret cx ON
|
||||
-- cx.perd = pl.gl AND
|
||||
-- cx.rtyp = 'MA' AND
|
||||
-- cx.fcur = pl.curr AND
|
||||
-- cx.tcur = 'US'
|
||||
-- LEFT OUTER JOIN rlarp.ffcret rx ON
|
||||
-- rx.perd = pl.gl AND
|
||||
-- rx.rtyp = 'MA' AND
|
||||
-- rx.fcur = b.r_currency AND
|
||||
-- rx.tcur = 'US'
|
||||
-- WHERE
|
||||
-- true
|
||||
-- -- iter IN ('actuals','actuals_plug','copy')
|
||||
-- AND fs_line = '41010'
|
||||
-- AND substring(o.glec,1,1) <= '2'
|
||||
-- AND o.calc_status <> 'CANCELED'
|
||||
-- AND o.sseas IS NOT NULL
|
||||
-- GROUP BY
|
||||
-- o.account
|
||||
-- ,o.shipgrp
|
||||
-- ,o.chan
|
||||
-- ,o.dsm
|
||||
-- ,i.partgroup
|
||||
-- ,i.pricegroup
|
||||
-- ,o.part
|
||||
-- ,o.glec
|
||||
-- ,o.oseas
|
||||
-- ,o.odate
|
||||
-- ,og.sortmo
|
||||
-- ,o.sseas
|
||||
-- ,o.sdate
|
||||
-- ,sg.sortmo
|
||||
-- -- ,o.calc_status
|
||||
-- )
|
||||
-- -- SELECT * FROM ngrp
|
||||
-- ,nguid AS (
|
||||
-- SELECT
|
||||
-- grp.account
|
||||
-- ,grp.shipgrp
|
||||
-- ,grp.chan
|
||||
-- ,r.repp dsm
|
||||
-- ,r.director
|
||||
-- ,grp.shipgrp||'.'||r.repp lu
|
||||
-- -- ,grp.partgroup
|
||||
-- -- ,grp.pricegroup
|
||||
-- ,grp.part
|
||||
-- -- ,grp.glec
|
||||
-- ,2026 oseas
|
||||
-- ,grp.omon
|
||||
-- ,grp.odate
|
||||
-- ,(2026- grp.oseas) + grp.sseas sseas
|
||||
-- ,grp.smon
|
||||
-- ,grp.sdate
|
||||
-- ,grp.lbs
|
||||
-- ,grp.qty
|
||||
-- ,grp.sales_usd
|
||||
-- ,CASE WHEN round(grp.sales_usd/grp.qty,5) = 0 THEN null ELSE round(grp.sales_usd/grp.qty,5) END hist_price
|
||||
-- ,grp.cost_curstd_usd
|
||||
-- ,sum(grp.lbs) OVER (PARTITION BY shipgrp, dsm) shiplbs
|
||||
-- ,CASE WHEN seq.floor = 0 THEN null else seq.floor END floor
|
||||
-- ,CASE WHEN seq.ceiling = 0 THEN null else seq.ceiling END ceiling
|
||||
-- ,seq.uselimits
|
||||
-- ,seq.price
|
||||
-- ,seq.avgprice
|
||||
-- ,seq.pltq
|
||||
-- ,ROUND(CASE WHEN seq.uselimits THEN
|
||||
-- CASE
|
||||
-- WHEN glec = '1NU' THEN
|
||||
-- --if more than 8/24 pallets, use floor
|
||||
-- CASE WHEN grp.qty >= 24*seq.pltq THEN seq.floor
|
||||
-- -- if more than a pallet use the target price
|
||||
-- ELSE CASE WHEN qtyord >= 8*seq.pltq THEN (seq.ceiling + seq.floor) / 2
|
||||
-- -- if more than a pallet use the target price
|
||||
-- ELSE CASE WHEN qtyord >= 2*seq.pltq THEN seq.ceiling
|
||||
-- -- if more than a pallet use the target price
|
||||
-- ELSE seq.ceiling * 1.05
|
||||
-- END END END
|
||||
-- ELSE
|
||||
-- CASE WHEN pricegroup ~ '(Hanger|Dish)' THEN
|
||||
-- --at least 1 pallets is lower limit
|
||||
-- CASE WHEN qtyord >= 01*seq.pltq THEN seq.floor
|
||||
-- --at least 2 pallets is mid range
|
||||
-- ELSE CASE WHEN qtyord >= 0.5*seq.pltq THEN (seq.ceiling + seq.floor) / 2
|
||||
-- --less than a pallet is upper + 15%
|
||||
-- ELSE seq.ceiling
|
||||
-- END END
|
||||
-- ELSE
|
||||
-- --at least 8 pallets is lower limit
|
||||
-- CASE WHEN qtyord >= 08*seq.pltq THEN seq.floor
|
||||
-- --at least 2 pallets is mid range
|
||||
-- ELSE CASE WHEN qtyord >= 2*seq.pltq THEN (seq.ceiling + seq.floor) / 2
|
||||
-- --at least 1 pallet is upper range
|
||||
-- ELSE CASE WHEN qtyord >= 1*seq.pltq THEN seq.ceiling
|
||||
-- --less than a pallet is upper + 15%
|
||||
-- ELSE seq.ceiling * 1.15
|
||||
-- END END END
|
||||
-- END
|
||||
-- END
|
||||
-- ELSE
|
||||
-- null
|
||||
-- END,5) guid
|
||||
-- FROM
|
||||
-- ngrp grp
|
||||
-- LEFT OUTER JOIN nseq seq ON
|
||||
-- seq.ship_dba = grp.shipgrp
|
||||
-- AND seq.bill_dba = grp.account
|
||||
-- AND seq.part = grp.part
|
||||
-- AND seq.rn = 1
|
||||
-- LEFT OUTER JOIN rlarp.repc r ON
|
||||
-- r.rcode = grp.dsm
|
||||
-- )
|
||||
-- select * from nguid
|
||||
--
|
||||
-- -- ,orphans AS (
|
||||
-- -- SELECT
|
||||
-- -- account
|
||||
-- -- ,shipgrp
|
||||
-- -- ,chan
|
||||
-- -- ,dsm
|
||||
-- -- ,director
|
||||
-- -- ,lu
|
||||
-- -- --,partgroup
|
||||
-- -- --,pricegroup
|
||||
-- -- ,part
|
||||
-- -- -- ,glec
|
||||
-- -- ,oseas
|
||||
-- -- ,omon
|
||||
-- -- -- ,odate
|
||||
-- -- ,sseas
|
||||
-- -- ,smon
|
||||
-- -- -- ,sdate
|
||||
-- -- ,lbs
|
||||
-- -- ,qty
|
||||
-- -- ,sales_usd
|
||||
-- -- ,hist_price
|
||||
-- -- ,cost_curstd_usd
|
||||
-- -- ,shiplbs
|
||||
-- -- ,floor
|
||||
-- -- ,ceiling
|
||||
-- -- ,uselimits
|
||||
-- -- ,price
|
||||
-- -- ,avgprice
|
||||
-- -- ,pltq
|
||||
-- -- ,guid
|
||||
-- -- ,least(hist_price, price, avgprice) lowest_last
|
||||
-- -- ,least(hist_price, price, avgprice, floor) lowest_floor
|
||||
-- -- FROM
|
||||
-- -- nguid
|
||||
-- -- )
|
||||
-- -- SELECT * FROM orphans
|
||||
-- SELECT * FROM orphans
|
||||
|
||||
@ -272,6 +272,83 @@ FROM
|
||||
WHERE
|
||||
cust_lbs >= 1000
|
||||
)
|
||||
----grouped prices-------------
|
||||
,npgrp AS (
|
||||
SELECT
|
||||
o.bill_dba
|
||||
,o.ship_dba
|
||||
,o.bill_cust
|
||||
,o.ship_cust
|
||||
,o.promo
|
||||
,o.terms
|
||||
,o.dsm
|
||||
,o.part
|
||||
,o.odate
|
||||
,o.qtyord
|
||||
,i.nwht * CASE WHEN i.nwun = 'KG' THEN 2.2 ELSE 1 END lbs
|
||||
,i.mpck pltq
|
||||
,ROUND(o.sales_usd / o.qty,5) price
|
||||
,(o.pricing->>'guidance_price')::NUMERIC guidance
|
||||
,(o.pricing->>'floor' )::numeric(15,5) floor
|
||||
,(o.pricing->>'ceiling')::numeric(15,5) ceiling
|
||||
,(o.pricing->>'uselimits')::boolean uselimits
|
||||
FROM
|
||||
rlarp.osm_stack o
|
||||
INNER JOIN "CMS.CUSLG".itemm i ON
|
||||
i.item = o.part
|
||||
INNER JOIN checkc c ON
|
||||
c.shipgrp = o.customer
|
||||
AND c.oseas = o.oseas
|
||||
WHERE
|
||||
VERSION = 'Actual'
|
||||
AND o.oseas >= 2018
|
||||
AND calc_status <> 'CANCELED'
|
||||
AND o.fs_line = '41010'
|
||||
AND o.part <> ''
|
||||
AND substring(o.glec,1,1) <= '2'
|
||||
AND o.qty <> 0
|
||||
AND o.sseas IS NOT NULL
|
||||
-- AND customer in (select distinct renamed FROM newc )
|
||||
GROUP BY
|
||||
o.bill_dba
|
||||
,o.ship_dba
|
||||
,o.dsm
|
||||
,i.partgroup
|
||||
,i.pricegroup
|
||||
,o.part
|
||||
,o.odate
|
||||
,o.qtyord
|
||||
,o.pounds
|
||||
,o.pallets
|
||||
,ROUND(o.sales_usd / o.qty,5)
|
||||
,i.nwht * CASE WHEN i.nwun = 'KG' THEN 2.2 ELSE 1 END
|
||||
,i.mpck
|
||||
,(o.pricing->>'guidance_price')::NUMERIC
|
||||
,(o.pricing->>'floor' )::numeric(15,5)
|
||||
,(o.pricing->>'ceiling')::numeric(15,5)
|
||||
,(o.pricing->>'uselimits')::boolean
|
||||
)
|
||||
----sequenced for most recent price------------
|
||||
,nseq AS (
|
||||
SELECT
|
||||
bill_dba
|
||||
,ship_dba
|
||||
,part
|
||||
,odate
|
||||
,qtyord
|
||||
,lbs
|
||||
,pltq
|
||||
,price
|
||||
,guidance
|
||||
,floor
|
||||
,ceiling
|
||||
,uselimits
|
||||
,row_number() OVER (PARTITION BY bill_dba, ship_dba, part ORDER BY odate desc) rn
|
||||
,round(avg(price) over (PARTITION BY bill_dba, ship_dba, part),5) avgprice
|
||||
FROM
|
||||
npgrp
|
||||
)
|
||||
-- SELECT * FROM seq WHERE rn = 1
|
||||
INSERT INTO rlarp.osm_pool SELECT * FROM scale;
|
||||
-- select * from scale) WITH DATA;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user