| 123456789101112131415161718192021222324252627282930313233343536 |
- -- ============================================
- -- 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
|