From 4edd2aee40fec05bce32502c840a01225d3897cc Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Thu, 20 Mar 2025 02:09:17 -0400 Subject: [PATCH] commit: 2025-03-20 02:09:17 --- offline/scale_cust.pg.sql | 104 ++++++++++++++++++++++++++++++++------ 1 file changed, 89 insertions(+), 15 deletions(-) diff --git a/offline/scale_cust.pg.sql b/offline/scale_cust.pg.sql index be5b95b..2c4db7a 100644 --- a/offline/scale_cust.pg.sql +++ b/offline/scale_cust.pg.sql @@ -1,5 +1,69 @@ -WITH -grp AS ( +WITH +----grouped prices------------- +pgrp AS ( + SELECT + o.bill_dba + ,o.ship_dba + ,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 + LEFT OUTER JOIN "CMS.CUSLG".itemm i ON + i.item = o.part + WHERE + VERSION = 'Actual' + AND oseas >= 2024 + AND calc_status <> 'CANCELED' + AND o.fs_line = '41010' + AND o.part <> '' + AND substring(o.glec,1,1) <= '2' + AND o.qty <> 0 + GROUP BY + o.bill_dba + ,o.ship_dba + ,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------------ +,seq 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 + pgrp +) +-- SELECT * FROM seq WHERE rn = 1 +,grp AS ( SELECT o.account ,o.shipgrp @@ -28,18 +92,28 @@ grp AS ( -- ,o.calc_status ) SELECT - account - ,shipgrp - ,part - ,oseas - ,odate - ,sseas - ,sdate - -- ,calc_status - ,lbs - ,qty - ,sales_usd - ,cost_curstd_usd - ,sum(lbs) OVER (PARTITION BY shipgrp, oseas) shiplbs + grp.account + ,grp.shipgrp + ,grp.part + ,grp.oseas + ,grp.odate + ,grp.sseas + ,grp.sdate + ,grp.lbs + ,grp.qty + ,grp.sales_usd + ,grp.cost_curstd_usd + ,sum(grp.lbs) OVER (PARTITION BY shipgrp, oseas) shiplbs + ,seq.floor + ,seq.ceiling + ,seq.uselimits + ,seq.price + ,seq.avgprice + ,seq.pltq FROM grp + LEFT OUTER JOIN seq ON + seq.ship_dba = grp.shipgrp + AND seq.bill_dba = grp.account + AND seq.part = grp.part + AND seq.rn = 1