plist_builder/db_schema/extract_for_customer_facing...

118 lines
2.9 KiB
SQL

WITH
pc AS materialized (
SELECT
STLC
,COALESCE(COLTIER,'') COLTIER
,coalesce(BRANDING,'' ) branding
,COALESCE(ACCS ,'') ACCS
,COALESCE(SUFF,'') SUFFIX
----price 1 -----------------
,PCKG PCKG1
,1 VOLL1
,PCKG VOL1_UOM
,PACK VOL1_PRICE
----price 2 -----------------
,PCKG PCKG2
,1 VOLl2
,'PLT' VOL2_UOM
,MP VOL2_PRICE
----price 3 -----------------
,'PLT' PCKG3
,1 VOLL3
,'PLT' VOL3_UOM
,BULK VOL3_PRICE
FROM
rlarp.PCORE P
)
,colors AS (
SELECT
pc.STLC
,pc.COLTIER
,pc.branding
,pc.ACCS
,pc.SUFFIX
,string_agg( DISTINCT ltrim(rtrim(i.COLC)),', ') clist
----price 1 -----------------
,pc.PCKG1
,pc.VOLL1
,pc.VOL1_UOM
,pc.VOL1_PRICE
----price 2 -----------------
,pc.PCKG2
,pc.VOLl2
,pc.VOL2_UOM
,pc.VOL2_PRICE
----price 3 -----------------
,pc.PCKG1
,pc.VOLL3
,pc.VOL3_UOM
,pc.VOL3_PRICE
FROM
pc
LEFT OUTER JOIN RLARP.ITEMMv i ON
i.STLC = pc.stlc
AND i.COLTIER = pc.coltier
--relax relationship to pick up any colors that we run for the mold and color tier
--AND COALESCE(i.BRANDING,'') = pc.branding
--AND COALESCE(i.ACCS,'') = pc.ACCS
--AND COALESCE(i.SUFFIX,'') = pc.suffix
AND APLNT <> 'I'
GROUP BY
pc.STLC
,pc.COLTIER
,pc.branding
,pc.ACCS
,pc.SUFFIX
----price 1 -----------------
,pc.PCKG1
,pc.VOLL1
,pc.VOL1_UOM
,pc.VOL1_PRICE
----price 2 -----------------
,pc.PCKG2
,pc.VOLl2
,pc.VOL2_UOM
,pc.VOL2_PRICE
----price 3 -----------------
,pc.PCKG1
,pc.VOLL3
,pc.VOL3_UOM
,pc.VOL3_PRICE
)
-----------since joining to the item master will be differnt for the last bulk columm---------------
-----------must first pivot the data out then join based on the type of row-------------------------
,items_init AS (
SELECT
pc.STLC
,pc.coltier
,pc.branding
,pc.accs
,pc.suffix
,row_number() OVER (PARTITION BY pc.stlc, pc.coltier, pc.branding, pc.accs, pc.suffix ORDER BY item DESC) seq
,item
,vol1_uom
,vol2_uom
,vol3_uom
,'PC' to_uom
FROM
pc
LEFT OUTER JOIN RLARP.ITEMMv i ON
i.STLC = pc.stlc
--AND i.COLTIER = pc.coltier
AND COALESCE(i.BRANDING,'') = pc.branding
AND COALESCE(i.ACCS,'') = pc.ACCS
AND COALESCE(i.SUFFIX,'') = pc.suffix
AND APLNT <> 'I'
)
,items AS (
SELECT * FROM items_init where seq = 1
)
,uom AS (
SELECT item partn, vol1_uom from_uom, 'pc' to_uom FROM items_init
UNION ALL
SELECT item partn, vol2_uom from_uom, 'pc' to_uom FROM items_init
UNION ALL
SELECT item partn, vol3_uom from_uom, 'pc' to_uom FROM items_init
)
SELECT * FROM uom