开单扣减信息表添加开单时间字段.sql
2.05 KB
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
-- ============================================
-- 为开单扣减信息表(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;