check_and_fix_standard_factor.sql 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. -- 查看并修复标准因子关联
  2. USE `pacsonline_new`;
  3. -- 1. 查看 STD_IMAGE_001 的所有因子关联
  4. SELECT '===== STD_IMAGE_001 当前的所有因子关联 =====' as '';
  5. SELECT
  6. sf.id,
  7. sf.factor_id,
  8. f.factor_code,
  9. f.factor_name,
  10. sf.check_rule,
  11. sf.pass_value,
  12. sf.weight
  13. FROM `qc_standard_factor` sf
  14. JOIN `qc_factor` f ON sf.factor_id = f.id
  15. WHERE sf.standard_id = 'STD_IMAGE_001'
  16. ORDER BY sf.id;
  17. -- 2. 统计每个标准有多少个因子
  18. SELECT '===== 每个标准的因子数量 =====' as '';
  19. SELECT
  20. standard_id,
  21. COUNT(*) as factor_count
  22. FROM `qc_standard_factor`
  23. GROUP BY standard_id
  24. ORDER BY factor_count DESC;
  25. -- 3. 查找不应该存在的关联(不在5个核心因子中的)
  26. SELECT '===== 查找多余的关联 =====' as '';
  27. SELECT
  28. sf.id,
  29. sf.standard_id,
  30. sf.factor_id,
  31. f.factor_code,
  32. f.factor_name
  33. FROM `qc_standard_factor` sf
  34. JOIN `qc_factor` f ON sf.factor_id = f.id
  35. WHERE sf.standard_id = 'STD_IMAGE_001'
  36. AND sf.factor_id NOT IN ('FACTOR_001', 'FACTOR_002', 'FACTOR_003', 'FACTOR_004', 'FACTOR_005');
  37. -- 4. 如果有多余的,执行删除(取消注释下面的SQL)
  38. -- DELETE FROM `qc_standard_factor`
  39. -- WHERE standard_id = 'STD_IMAGE_001'
  40. -- AND factor_id NOT IN ('FACTOR_001', 'FACTOR_002', 'FACTOR_003', 'FACTOR_004', 'FACTOR_005');
  41. -- 5. 验证修复后的结果
  42. SELECT '===== 修复后的因子关联(应该只有5个)=====' as '';
  43. SELECT
  44. sf.id,
  45. sf.factor_id,
  46. f.factor_code,
  47. f.factor_name,
  48. sf.weight
  49. FROM `qc_standard_factor` sf
  50. JOIN `qc_factor` f ON sf.factor_id = f.id
  51. WHERE sf.standard_id = 'STD_IMAGE_001'
  52. AND sf.factor_id IN ('FACTOR_001', 'FACTOR_002', 'FACTOR_003', 'FACTOR_004', 'FACTOR_005')
  53. ORDER BY sf.factor_id;