ddl-piecework-date.sql 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. -- ============================================
  2. -- T09 计件统计修复 - DDL
  3. -- 目标库:mes_cloud_t09
  4. -- 说明:Online DDL 加字段不锁表,UPDATE 回填建议低峰执行
  5. -- 历史数据范围:只处理 2026-06-01 至今
  6. -- ============================================
  7. USE mes_cloud_t09;
  8. -- 步骤1:新增 piecework_date 字段(Online DDL,不锁表)
  9. ALTER TABLE mes_product_record
  10. ADD COLUMN piecework_date DATETIME NULL
  11. COMMENT '计件时间(首次加工完成时间)'
  12. AFTER update_date;
  13. -- 步骤2:历史数据回填(只处理 2026-06-01 至今)
  14. -- 用 update_date 作为近似首次完成时间;早于 2026-06-01 的旧数据不回填
  15. UPDATE mes_product_record
  16. SET piecework_date = update_date
  17. WHERE craft = '100000'
  18. AND content NOT IN ('UDF', '')
  19. AND piecework_date IS NULL
  20. AND update_date >= '2026-06-01';
  21. -- 步骤3:验证
  22. SELECT
  23. COUNT(*) AS total_100000,
  24. SUM(CASE WHEN piecework_date IS NOT NULL THEN 1 ELSE 0 END) AS has_piecework_date,
  25. SUM(CASE WHEN content = 'UDF' THEN 1 ELSE 0 END) AS udf_count,
  26. SUM(CASE WHEN content = 'OK' THEN 1 ELSE 0 END) AS ok_count,
  27. SUM(CASE WHEN content = 'NG' THEN 1 ELSE 0 END) AS ng_count
  28. FROM mes_product_record
  29. WHERE craft = '100000';