我想使用相同的更新語句來更新兩列嗎?ORACLE:立即更新多個列
IF V_COUNT = 9 THEN
UPDATE INVOICE
SET INV_DISCOUNT = DISC3 * INV_SUBTOTAL
, INV_TOTAL = INV_SUBTOTAL - INV_DISCOUNT
WHERE INV_ID = I_INV_ID;
DBMS_OUTPUT.PUT_LINE ('YOU QUALIFY FOR A DISCOUNT OF 30%');
的問題是,INV_TOTAL
沒有更新,只有inv_discount
DISC3 = 0.3 IE 30%的折扣,所以什麼都SUB_TOTAL是將0.3相乘,這就是折扣
INV_ID|INV_DATETIME |INV_SUBTOTAL|INV_DISCOUNT| INV_TOTAL
----------|------------------------------|------------|------------|-----------
100|14-NOV-12 09.40.06.918000 | $.00| $.00| $.00
101|18-MAR-12 10.03.00.000000 | $.00| $.00| $.00
102|18-MAR-12 10.15.00.000000 | $.00| $.00| $.00
103|18-MAR-12 10.55.00.000000 | $80.00| $8.00| $72.00
104|18-MAR-12 10.38.00.000000 | $.00| $.00| $.00
105|12-JUN-12 15.15.00.000000 | $.00| $.00| $.00
106|06-AUG-12 12.13.00.000000 | $.00| $.00| $.00
107|04-MAY-12 09.15.00.000000 | $.00| $.00| $.00
108|29-NOV-12 13.16.00.000000 | $25.00| $5.00| $22.50
109|18-MAR-12 10.37.00.000000 | $50.00| $15.00| $45.00
- 用於INV_discount
INV_TOTAL = SUB_TOTAL值
被假設是25 20%,折扣金額是正確的,但inv_total不是,它應該是20 $,而不是$ 22.50
被假設是50折扣金額30%是正確的,但inv_total應該是$ 35
計算罰款,這是10%的折扣
大聲笑,這樣浪費了10個小時就這個,我的程序計算inv_total的唯一方法是執行過程兩次。有點奇怪 –
還有一些問題,它似乎是在計算錯誤:S –
非常感謝現在工作 –