populate something even if there is no record

This commit is contained in:
Paul Trowbridge 2025-08-11 12:00:08 -04:00
parent d46e71a170
commit 82db9a4334

View File

@ -444,13 +444,17 @@ BEGIN
'History' AS label, 'History' AS label,
( (
SELECT SELECT
----------------------label------------------------------------------------
CASE CASE
WHEN q.last_price IS NOT NULL WHEN q.last_price IS NOT NULL
THEN 'Last Sale: ' + ISNULL(CONVERT(varchar(10), q.last_date, 120), '') THEN 'Last Sale: ' + ISNULL(CONVERT(varchar(10), q.last_date, 120), '')
ELSE 'No Recent' ELSE 'No Recent'
END AS label, END AS label,
----------------------value------------------------------------------------
ISNULL(q.last_price, 0) AS value, ISNULL(q.last_price, 0) AS value,
----------------------type-------------------------------------------------
'currency' AS type, 'currency' AS type,
----------------------note-------------------------------------------------
CASE CASE
WHEN q.last_price IS NOT NULL THEN WHEN q.last_price IS NOT NULL THEN
CONCAT( CONCAT(
@ -466,7 +470,8 @@ BEGIN
ELSE ' Ord# ' + ISNULL(q.last_order, '') ELSE ' Ord# ' + ISNULL(q.last_order, '')
END END
) )
ELSE NULL ELSE
''
END AS note END AS note
FOR JSON PATH -- array with one object (no WITHOUT_ARRAY_WRAPPER) FOR JSON PATH -- array with one object (no WITHOUT_ARRAY_WRAPPER)
) AS details ) AS details
@ -478,10 +483,10 @@ BEGIN
'List' AS label, 'List' AS label,
( (
SELECT SELECT
'List:' + q.listcode AS label, COALESCE('List:' + q.listcode,'No List') AS label,
q.listprice AS value, COALESCE(q.listprice,0) AS value,
'currency' AS type, 'currency' AS type,
q.list_relevance AS note COALESCE(q.list_relevance,'') AS note
FOR JSON PATH FOR JSON PATH
) )
@ -492,12 +497,23 @@ BEGIN
'Target Support' AS label, 'Target Support' AS label,
( (
SELECT SELECT
RTRIM(SUBSTRING(value,1,18)) AS label, ----------------------label------------------------------------------------
TRY_CAST(SUBSTRING(value,23,7) AS NUMERIC(20,5)) CASE WHEN value <> '' THEN RTRIM(SUBSTRING(value,1,18)) ELSE 'No Target' END AS label,
+ CASE SUBSTRING(value,19,1) WHEN '+' THEN 0 ELSE -1 END AS value, ----------------------value------------------------------------------------
CASE SUBSTRING(value,19,1) WHEN '+' THEN 'currency' ELSE 'Percent' END AS type, CASE WHEN value <> '' THEN
CASE SUBSTRING(value,19,1) WHEN '+' THEN 'Price' ELSE 'Premium' END AS note TRY_CAST(SUBSTRING(value,23,7) AS NUMERIC(20,5))
FROM OPENJSON(q.expl, '$.target_math') + CASE SUBSTRING(value,19,1) WHEN '+' THEN 0 ELSE -1 END
ELSE 0 END AS value,
----------------------type-------------------------------------------------
CASE WHEN value <> '' THEN
CASE SUBSTRING(value,19,1) WHEN '+' THEN 'currency' ELSE 'Percent' END
ELSE '' END AS type,
----------------------note-------------------------------------------------
CASE WHEN value <> '' THEN
CASE SUBSTRING(value,19,1) WHEN '+' THEN 'Price' ELSE 'Premium' END
ELSE '' END AS note
FROM @queue q
OUTER APPLY OPENJSON(q.expl, '$.target_math')
WITH (value NVARCHAR(MAX) '$') WITH (value NVARCHAR(MAX) '$')
FOR JSON PATH FOR JSON PATH
) AS details ) AS details
@ -510,7 +526,7 @@ BEGIN
( (
SELECT SELECT
'Price' AS label, 'Price' AS label,
q.guidance_price AS value, COALESCE(q.guidance_price,0) AS value,
'currency' AS type, 'currency' AS type,
q.guidance_reason AS note q.guidance_reason AS note
FOR JSON PATH FOR JSON PATH