需求:
先匯整出 N表,然後根據 N表、在 P表中查找到對應的 id 及 postdate,去更新 P表的2個欄位:post_qty 和remaining_qty。
先更新 post_qty ,再根據異動後的 post_qty來重新計算 remaining_qty。
remaining_qty = N.ad_qty – P.post_qty
執行後發現,remaining_qty 不會用新的post_qty來計算;它一直是用 post_qty異動前的舊值來計算。
請高人指點:這是 MySQL 的特性嗎?還是哪裡的語句要調整?
SQL 語句如下:
update custom_data_1020 P,
( SELECT DATA_1 receipt_no, DATA_2AS application_date, DATA_23 AS postdate_begin, DATA_25 AS postdate_end,
DATA_10_8 ad_id, B.ad_qty, L.postdate, L.id, count(*)qty
FROM zzzz_flow_data_12 M
JOINzzzz_flow_data_12_10 D ON D.run_id = M.run_id
JOINcustom_data_1020 L ON L.id = D.DATA_10_8 AND L.postdate BETWEEN M.DATA_23 ANDM.DATA_25
JOINcustom_data_1010 B ON B.id = D.DATA_10_8
WHERE M.DATA_2 =STR_TO_DATE('2020-07-08', "%Y-%m-%d" )
GROUP BY id, postdate
ORDER BY id, postdate
) as N
set post_qty = post_qty + N.qty,remaining_qty = N.ad_qty - post_qty
where P.id = N.id and P.postdate = N.postdate
[attach]132455244[/attach]
歡迎光臨 伊莉討論區 (http://a401.file-static.com/) | Powered by Discuz! |