更新开单记录表储扣金额.sql
700 Bytes
-- 更新开单记录表中的储扣金额,使其等于储扣详情表中汇总的金额
-- 只更新那些储扣金额不一致的记录(包括NULL、0或金额不匹配的情况)
UPDATE lq_kd_kdjlb kd
INNER JOIN (
SELECT
F_BillingId,
COALESCE(SUM(F_Amount), 0) as total_amount
FROM lq_kd_deductinfo
WHERE F_IsEffective = 1
GROUP BY F_BillingId
) deduct_sum ON kd.F_Id = deduct_sum.F_BillingId
SET kd.F_DeductAmount = deduct_sum.total_amount
WHERE kd.F_IsEffective = 1
AND (
kd.F_DeductAmount IS NULL
OR kd.F_DeductAmount = 0
OR ABS(kd.F_DeductAmount - deduct_sum.total_amount) > 0.01
)
AND deduct_sum.total_amount > 0;