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