vault backup: 2023-11-03 11:21:44
This commit is contained in:
parent
65c4f689cc
commit
4e641e6dd6
104
sql/get.sql
104
sql/get.sql
@ -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
|
||||||
--SELECT gdoc, jsonb_pretty(data) FROM final
|
GROUP BY agglvl, gdoc
|
||||||
SELECT gdoc, data FROM final
|
),
|
||||||
|
final AS (
|
||||||
|
SELECT
|
||||||
|
public.jsonb_obj_aggc(data) AS data,
|
||||||
|
gdoc
|
||||||
|
FROM aggfinal
|
||||||
|
GROUP BY gdoc
|
||||||
|
)
|
||||||
|
SELECT data INTO result FROM final;
|
||||||
|
|
||||||
|
RETURN result;
|
||||||
|
|
||||||
|
END
|
||||||
|
$func$;
|
||||||
|
|
||||||
|
68
sql/getdebug.pg.sql
Normal file
68
sql/getdebug.pg.sql
Normal 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
|
Loading…
Reference in New Issue
Block a user