gongchunyi
4 天以前 7828b982da116070fe11526733609ecce23631b6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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;