Правка 1 sql запроса и написание других при желании

Цена договорная
01 апреля 2024, 11:53 • 3 отклика • 83 просмотра
Есть 1 табличка с данными в которую уложена в учетная бд по движению товара и его оплат ( вся атрибутика сущностей лежит в json поле )

Ниже пример sql запроса формирующего строки для печати расходной накладной

Нужно поправить 3 поля в этом запросе по указанию заказчика и фронтера, который спишет запросы по редактированию этих сущностей и знает, что где лежит.

При желании писать другие запросы, которые будут появляться по ходу жизни проекта.

Прошу сразу указать сумму интереса к правке. Табличку с данными и детальными указаниями по правке предоставлю

SELECT
product as products
FROM (
SELECT
(CASE WHEN @p = ( SELECT CAST(json_extract( pole, "$.client" ) AS UNSIGNED) FROM dataset WHERE dataset.id = mtl.id_ref LIMIT 1 )
THEN
@rownum := @rownum + 1
ELSE
@rownum := 1 END
),
(CASE WHEN @p = ( SELECT CAST(json_extract( pole, "$.client" ) AS UNSIGNED) FROM dataset WHERE dataset.id = mtl.id_ref LIMIT 1 )
THEN
NULL
ELSE
@p := ( SELECT CAST(json_extract( pole, "$.client" ) AS UNSIGNED) FROM dataset WHERE dataset.id = mtl.id_ref LIMIT 1 ) END
),
JSON_OBJECT(
"client/place",
CONCAT(
REPLACE(( SELECT json_extract( pole, "$.client" ) FROM dataset WHERE dataset.id = mtl.id_ref LIMIT 1 ),"\\"",""),
\'/\',
REPLACE(( SELECT json_extract( pole, "$.place" ) FROM dataset WHERE dataset.id = mtl.id_ref LIMIT 1 ),"\\"","")
),
"gross_weight",
( SELECT json_extract( pole, "$.gross_weight" ) FROM dataset WHERE dataset.id = mtl.id_ref LIMIT 1 ),
"length*width*height",
CONCAT(
( SELECT json_extract( pole, "$.size.length" ) FROM dataset WHERE dataset.id = mtl.id_ref LIMIT 1 ),
"*",
( SELECT json_extract( pole, "$.size.width" ) FROM dataset WHERE dataset.id = mtl.id_ref LIMIT 1 ),
"*",
( SELECT json_extract( pole, "$.size.height" ) FROM dataset WHERE dataset.id = mtl.id_ref LIMIT 1 )
),
"tarif",
( SELECT json_extract( pole, "$.tarif" ) FROM dataset WHERE dataset.id = mtl.id_ref LIMIT 1 ),
"name",
json_extract( mtl.pole, "$.name" ),
"label",
json_extract( mtl.pole, "$.label" ),
"article",
json_extract( mtl.pole, "$.article" ),
"color",
json_extract( mtl.pole, "$.color" ),
"size",
json_extract( mtl.pole, "$.size" ),
"material",
json_extract( mtl.pole, "$.material" ),
"shoes_top",
json_extract( mtl.pole, "$.shoes_top" ),
"shoes_und",
json_extract( mtl.pole, "$.shoes_und" ),
"shoes_bottom",
json_extract( mtl.pole, "$.shoes_bottom" ),
"tn_code",
json_extract( mtl.pole, "$.tn_code" ),
"cert_number",
json_extract( mtl.pole, "$.cert_number" ),
"cert_start_date",
DATE_FORMAT( JSON_UNQUOTE( json_extract( mtl.pole, "$.cert_start_date" )), "%d.%m.%Y" ),
"cert_end_date",
DATE_FORMAT( JSON_UNQUOTE( json_extract( mtl.pole, "$.cert_end_date" )), "%d.%m.%Y" ),
"mark",
json_extract( mtl.pole, "$.mark" ),
"count",
json_extract( mtl.pole, "$.count" ),
"net_weight",
json_extract( mtl.pole, "$.net_weight" ),
"nomer",
@rownum
) AS product
FROM dataset AS mtl cross join (select @rownum := 1,@p := 0) counter_table_alias
WHERE
id_ref IN ( SELECT id FROM dataset WHERE tip = "place" AND id_ref = "'.$t_id.'" )
AND tip = "product"
) as products
ORDER BY JSON_EXTRACT(products.product,"$.client"),JSON_EXTRACT(products.product,"$.place"),@p'


Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
Заказчик всегда на связи, ставит задачу понятно, отвечает на вопросы, даёт необходимую информацию. Оплата без задержек. Приятно работать, спасибо.
8 месяцев назад