-- ============================================ -- 610 计件统计修复 - DDL -- 目标库:mes_cloud_610 -- 说明:Online DDL 加字段不锁表,UPDATE 回填建议低峰执行 -- ============================================ USE mes_cloud_610; -- 步骤1:新增 piecework_date 字段(Online DDL,不锁表) ALTER TABLE mes_product_record ADD COLUMN piecework_date DATETIME NULL COMMENT '计件时间(首次加工完成时间)' AFTER update_date; -- 步骤2:历史数据回填(只处理 2026-05-01 至今) -- 用 update_date 作为近似首次完成时间;早于 2026-05-01 的旧数据不回填 UPDATE mes_product_record SET piecework_date = update_date WHERE craft = '100000' AND content NOT IN ('UDF', '') AND piecework_date IS NULL AND update_date >= '2026-05-01'; -- 步骤3:验证 SELECT COUNT(*) AS total_100000, SUM(CASE WHEN piecework_date IS NOT NULL THEN 1 ELSE 0 END) AS has_piecework_date, SUM(CASE WHEN content = 'UDF' THEN 1 ELSE 0 END) AS udf_count, SUM(CASE WHEN content = 'OK' THEN 1 ELSE 0 END) AS ok_count, SUM(CASE WHEN content = 'NG' THEN 1 ELSE 0 END) AS ng_count FROM mes_product_record WHERE craft = '100000'; -- 预期: -- has_piecework_date = ok_count + ng_count -- UDF 记录 piecework_date 应为 NULL