ALTER TABLE `quality_inspect`
|
ADD COLUMN `qualified_quantity` decimal(18, 2) NULL DEFAULT NULL COMMENT '合格数量' AFTER `quantity`,
|
ADD COLUMN `unqualified_quantity` decimal(18, 2) NULL DEFAULT NULL COMMENT '不合格数量' AFTER `qualified_quantity`,
|
ADD COLUMN `pass_rate` decimal(18, 2) NULL DEFAULT NULL COMMENT '合格率(%)' AFTER `unqualified_quantity`;
|
|
-- 历史数据:按原「检测结果」与总数量回填(无总数量则跳过)
|
UPDATE `quality_inspect`
|
SET `unqualified_quantity` = CASE WHEN `check_result` = '不合格' THEN IFNULL(`quantity`, 0) ELSE 0 END,
|
`qualified_quantity` = CASE WHEN `check_result` = '不合格' THEN 0 ELSE IFNULL(`quantity`, 0) END
|
WHERE `qualified_quantity` IS NULL
|
AND `unqualified_quantity` IS NULL
|
AND `quantity` IS NOT NULL;
|
|
UPDATE `quality_inspect`
|
SET `pass_rate` = CASE
|
WHEN `quantity` IS NULL OR `quantity` = 0 THEN 0
|
ELSE ROUND(IFNULL(`qualified_quantity`, 0) * 100 / `quantity`, 2)
|
END
|
WHERE `pass_rate` IS NULL;
|