Blame view

项目文档相关/sql/更新开单记录表储扣金额.sql 700 Bytes
96e0ccc7   “wangming”   优化GetBillingRecor...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  -- 更新开单记录表中的储扣金额,使其等于储扣详情表中汇总的金额
  -- 只更新那些储扣金额不一致的记录(包括NULL0或金额不匹配的情况)
  
  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;