-- ============================================ -- 为开单扣减信息表(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;