Blame view

项目文档相关/sql/开单扣减信息表添加开单时间字段.sql 2.05 KB
d8035736   “wangming”   Refactor project ...
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
  -- ============================================
  -- 为开单扣减信息表(lq_kd_deductinfo)添加开单时间字段
  -- ============================================
  -- 说明:此脚本为开单扣减信息表添加开单时间字段,用于存储对应的开单时间
  -- 
  -- 字段说明:
  -- F_BillingTime:开单时间,用于存储对应的开单记录的开单时间(kdrq
  -- 
  -- 业务含义:
  -- - 开单时间用于记录储扣对应的开单时间,便于统计和查询
  -- - 开单时间来源于开单记录表(lq_kd_kdjlb)的 kdrq 字段
  -- 
  -- 注意事项:
  -- - 字段类型为DATETIME,允许为NULL(历史数据可能没有开单时间)
  -- - 字段位置:放在 F_BillingId 字段之后
  -- - 创建后需要更新历史数据,从开单记录表中获取对应的开单时间
  
  -- ============================================
  -- 1. 添加开单时间字段
  -- ============================================
  ALTER TABLE `lq_kd_deductinfo` 
  ADD COLUMN `F_BillingTime` DATETIME NULL COMMENT '开单时间' AFTER `F_BillingId`;
  
  -- ============================================
  -- 2. 更新历史数据:从开单记录表中获取开单时间
  -- ============================================
  UPDATE `lq_kd_deductinfo` deduct
  INNER JOIN `lq_kd_kdjlb` billing ON deduct.F_BillingId = billing.F_Id
  SET deduct.F_BillingTime = billing.kdrq
  WHERE deduct.F_BillingTime IS NULL 
    AND billing.kdrq IS NOT NULL;
  
  -- ============================================
  -- 3. 验证更新结果
  -- ============================================
  -- 查看更新后的统计信息
  SELECT 
      COUNT(*) as TotalCount,
      COUNT(F_BillingTime) as HasBillingTimeCount,
      COUNT(*) - COUNT(F_BillingTime) as NullBillingTimeCount
  FROM lq_kd_deductinfo;
  
  -- 查看有开单时间但开单记录不存在的记录(数据异常检查)
  SELECT 
      deduct.F_Id,
      deduct.F_BillingId,
      deduct.F_BillingTime
  FROM lq_kd_deductinfo deduct
  LEFT JOIN lq_kd_kdjlb billing ON deduct.F_BillingId = billing.F_Id
  WHERE deduct.F_BillingTime IS NOT NULL 
    AND billing.F_Id IS NULL
  LIMIT 10;