update sql

This commit is contained in:
Guoqs
2026-08-10 15:46:44 +08:00
parent cc16636c32
commit 5215cefaf8

View File

@@ -36,12 +36,14 @@ JOIN (
SELECT order_code, SUM(pay_amount) AS pay_record_sum
FROM order_pay_record
WHERE del_flag = '0'
AND create_time > '2026-07-25 00:00:00'
GROUP BY order_code
) pr ON pr.order_code = o.order_code
WHERE o.pay_mode IN ('4','5') -- 在线支付(微信/支付宝)
AND o.pay_status = '1' -- 已支付
AND o.insurance_amount > 0 -- 有保险
AND ABS(o.pay_amount - pr.pay_record_sum) < 0.005 -- pay_amount == 明细汇总 => 含了保险(错误)
AND o.create_time > '2026-07-25 00:00:00'
ORDER BY o.order_status, o.order_code;
@@ -94,16 +96,16 @@ ON DUPLICATE KEY UPDATE backup_time = NOW();
-- ▸ 方案 B矫正「全部」受影响订单含已完成仅让记录口径一致已多退的保险无法追回
-- 如需按此执行,去掉下面这条的注释:
-- UPDATE order_basic_info o
-- JOIN (
-- SELECT order_code, SUM(pay_amount) AS pay_record_sum
-- FROM order_pay_record WHERE del_flag = '0' GROUP BY order_code
-- ) pr ON pr.order_code = o.order_code
-- SET o.pay_amount = o.pay_amount - o.insurance_amount
-- WHERE o.pay_mode IN ('4','5')
-- AND o.pay_status = '1'
-- AND o.insurance_amount > 0
-- AND ABS(o.pay_amount - pr.pay_record_sum) < 0.005;
UPDATE order_basic_info o
JOIN (
SELECT order_code, SUM(pay_amount) AS pay_record_sum
FROM order_pay_record WHERE del_flag = '0' GROUP BY order_code
) pr ON pr.order_code = o.order_code
SET o.pay_amount = o.pay_amount - o.insurance_amount
WHERE o.pay_mode IN ('4','5')
AND o.pay_status = '1'
AND o.insurance_amount > 0
AND ABS(o.pay_amount - pr.pay_record_sum) < 0.005;
-- ---------------------------------------------------------------------------