Blame view

sql/更新开单扣减信息表品项分类字段.sql 2.23 KB
c63026bc   “wangming”   feat: 优化工资计算逻辑
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
  -- ============================================
  -- 更新开单扣减信息表(lq_kd_deductinfo)的品项分类字段
  -- ============================================
  -- 说明:此脚本用于更新 lq_kd_deductinfo 表的 F_ItemCategory 字段
  -- 
  -- 数据来源:从关联的项目资料表(lq_xmzl)的 qt2 字段获取品项分类
  -- 
  -- 关联关系:
  -- - lq_kd_deductinfo.F_ItemId = lq_xmzl.F_Id
  -- 
  -- 更新逻辑:
  -- - 更新所有记录(不判断是否有效)
  -- - 只更新关联的项目资料存在且qt2字段有值的记录
  -- -  lq_xmzl.qt2 字段获取品项分类(医美/科美/生美)
  -- - 如果当前 F_ItemCategory 已有值但与 lq_xmzl.qt2 不一致,也会更新为最新值
  
  -- ============================================
  -- 更新开单扣减信息表的品项分类字段
  -- ============================================
  UPDATE lq_kd_deductinfo deduct
  INNER JOIN lq_xmzl xmzl ON deduct.F_ItemId = xmzl.F_Id
  SET deduct.F_ItemCategory = xmzl.qt2
  WHERE xmzl.qt2 IS NOT NULL
    AND xmzl.qt2 != ''
    AND (deduct.F_ItemCategory IS NULL 
         OR deduct.F_ItemCategory = '' 
         OR deduct.F_ItemCategory != xmzl.qt2);
  
  -- ============================================
  -- 验证更新结果
  -- ============================================
  -- 查看更新后的统计信息
  -- SELECT 
  --     F_ItemCategory AS 品项分类,
  --     COUNT(*) AS 记录数
  -- FROM lq_kd_deductinfo
  -- GROUP BY F_ItemCategory
  -- ORDER BY 记录数 DESC;
  
  -- 查看未更新的记录数(关联的项目资料不存在或qt2为空)
  -- SELECT COUNT(*) AS 未更新记录数
  -- FROM lq_kd_deductinfo deduct
  -- LEFT JOIN lq_xmzl xmzl ON deduct.F_ItemId = xmzl.F_Id
  -- WHERE xmzl.F_Id IS NULL 
  --    OR xmzl.qt2 IS NULL 
  --    OR xmzl.qt2 = '';
  
  -- 查看更新前后的对比(需要先备份数据)
  -- SELECT 
  --     deduct.F_Id,
  --     deduct.F_ItemId,
  --     deduct.F_ItemName,
  --     deduct.F_ItemCategory AS 更新前分类,
  --     xmzl.qt2 AS 更新后分类
  -- FROM lq_kd_deductinfo deduct
  -- INNER JOIN lq_xmzl xmzl ON deduct.F_ItemId = xmzl.F_Id
  -- WHERE xmzl.qt2 IS NOT NULL
  --   AND xmzl.qt2 != ''
  --   AND (deduct.F_ItemCategory IS NULL 
  --        OR deduct.F_ItemCategory = '' 
  --        OR deduct.F_ItemCategory != xmzl.qt2)
  -- LIMIT 100;