-- 检验项结果空值回填 | 目标库 mom-hm | 2026-10-15
|
--
|
-- 背景:mes_qc_indicator_result_detail 有 2720/3609 行 value 为空(约 75%)。
|
-- 原因是此前的导入过程「非数值不落库」,把原始记录值塞进了 remark:
|
-- 录入项: "...;原记录值:<X>;原值不含可转换的实测数值,待补测"
|
-- 分组项: "...;原记录值:<X>;分组标题不录入实测结果"
|
--
|
-- 回填规则(与用户确认):
|
-- 1. 只回填「录入项」(mes_qc_indicator.item_type = 1):value := 备注中的 <X>,原样存字符串
|
-- (X 可能是 合格/符合要求/正常/未检出/待复核,或带单位 0.56%、0.04 g/kg、503.0 粒)
|
-- 2. 分组项(item_type = 2)不填:备注已注明「分组标题不录入实测结果」
|
-- 3. 备注为 NULL / 无「原记录值」的 38 行不填(无原始值来源)
|
--
|
-- 备份(回填前):
|
-- SELECT id,result_id,indicator_id,value,remark FROM mes_qc_indicator_result_detail
|
-- WHERE deleted=0 AND (value IS NULL OR value='') ORDER BY id; -> detail-empty-before.tsv(2720 行)
|
--
|
-- 结果:空值 2720 -> 739(回填 1981 行);剩余 739 = 录入项 27 + 分组项 712。
|
|
UPDATE mes_qc_indicator_result_detail d
|
JOIN mes_qc_indicator i ON i.id = d.indicator_id
|
SET d.value = SUBSTRING_INDEX(SUBSTRING_INDEX(d.remark, '原记录值:', -1), ';', 1)
|
WHERE d.deleted = 0
|
AND (d.value IS NULL OR d.value = '')
|
AND i.item_type = 1
|
AND d.remark LIKE '%原记录值:%';
|