vault backup: 2023-11-03 11:21:44

This commit is contained in:
Paul Trowbridge 2023-11-03 11:21:44 -04:00
parent 65c4f689cc
commit 4e641e6dd6
2 changed files with 128 additions and 66 deletions

View File

@ -1,68 +1,62 @@
WITH CREATE OR REPLACE FUNCTION rlarp.gethist(_item text, _cust text)
getj AS ( RETURNS jsonb
LANGUAGE plpgsql
AS $func$
DECLARE
result jsonb;
BEGIN
WITH getj AS (
SELECT (
SELECT jsonb_build_object('mold', JSON_AGG(DISTINCT stlc))
FROM "CMS.CUSLG".itemm
WHERE item ~ _item
) || (
SELECT jsonb_build_object('cust', JSONB_AGG(DISTINCT c.dba))
FROM rlarp.cust c
WHERE c.dba ~ _cust
) AS doc
),
agg AS (
SELECT SELECT
( gset,
SELECT (SELECT string_agg(ae.v, '.') FROM jsonb_array_elements_text(p.agglevel) ae(v)) AS agglvl,
jsonb_build_object('mold',JSON_AGG(DISTINCT stlc)) doc season,
FROM (SELECT doc FROM getj) AS gdoc
"CMS.CUSLG".itemm FROM rlarp.price_pool_dev p
WHERE WHERE
item ~ 'TUH10000A10B04'
) ||
(
SELECT
jsonb_build_object('cust',JSONB_AGG(DISTINCT c.dba))
FROM
rlarp.cust c
WHERE
c.dba ~ 'DIAMOND R'
) doc
)
,agg AS (
SELECT
gset
,(SELECT string_agg(ae.v,'.') FROM jsonb_array_elements_text(p.agglevel) ae(v)) agglvl
,season
,(select doc from getj) gdoc
FROM
rlarp.price_pool_dev p
WHERE
--gut the exact mold and actuals only
gset @> jsonb_build_object( gset @> jsonb_build_object(
'mold', (SELECT doc->'mold'->>0 FROM getj), 'mold', (SELECT doc->'mold'->>0 FROM getj),
'vers', 'A' 'vers', 'A'
) )
--pull either the exact customer or no customer
AND ( AND (
gset @> jsonb_build_object( gset @> jsonb_build_object(
'cust', (SELECT doc->'cust'->>0 FROM getj) 'cust', (SELECT doc->'cust'->>0 FROM getj)
) )
OR NOT gset ? 'cust' OR NOT gset ? 'cust'
) )
ORDER BY ORDER BY agglevel ASC
agglevel ASC ),
) aggfinal AS (
,aggfinal AS (
SELECT SELECT
jsonb_build_object( jsonb_build_object(
agg.agglvl, agg.agglvl,
jsonb_agg(gset || jsonb_build_object('season', season)) jsonb_agg(gset || jsonb_build_object('season', season))
) data ) AS data,
,gdoc
FROM
agg
GROUP BY
agglvl
,gdoc
)
,final AS (
SELECT
public.jsonb_obj_aggc(data) data
, gdoc
FROM
aggfinal
GROUP BY
gdoc gdoc
FROM agg
GROUP BY agglvl, gdoc
),
final AS (
SELECT
public.jsonb_obj_aggc(data) AS data,
gdoc
FROM aggfinal
GROUP BY gdoc
) )
--SELECT gdoc, jsonb_pretty(data) FROM final SELECT data INTO result FROM final;
SELECT gdoc, data FROM final
RETURN result;
END
$func$;

68
sql/getdebug.pg.sql Normal file
View File

@ -0,0 +1,68 @@
WITH
getj AS (
SELECT
(
SELECT
jsonb_build_object('mold',JSON_AGG(DISTINCT stlc)) doc
FROM
"CMS.CUSLG".itemm
WHERE
item ~ 'TUH10000A10B04'
) ||
(
SELECT
jsonb_build_object('cust',JSONB_AGG(DISTINCT c.dba))
FROM
rlarp.cust c
WHERE
c.dba ~ 'DIAMOND R'
) doc
)
,agg AS (
SELECT
gset
,(SELECT string_agg(ae.v,'.') FROM jsonb_array_elements_text(p.agglevel) ae(v)) agglvl
,season
,(select doc from getj) gdoc
FROM
rlarp.price_pool_dev p
WHERE
--gut the exact mold and actuals only
gset @> jsonb_build_object(
'mold',(SELECT doc->'mold'->>0 FROM getj),
'vers','A'
)
--pull either the exact customer or no customer
AND (
gset @> jsonb_build_object(
'cust',(SELECT doc->'cust'->>0 FROM getj)
)
OR NOT gset ? 'cust'
)
ORDER BY
agglevel ASC
)
,aggfinal AS (
SELECT
jsonb_build_object(
agg.agglvl,
jsonb_agg(gset || jsonb_build_object('season',season))
) data
,gdoc
FROM
agg
GROUP BY
agglvl
,gdoc
)
,final AS (
SELECT
public.jsonb_obj_aggc(data) data
, gdoc
FROM
aggfinal
GROUP BY
gdoc
)
--SELECT gdoc, jsonb_pretty(data) FROM final
SELECT gdoc, data FROM final