學習SQL,請原諒我。Oracle SQL根據其他表更新一列,但基於日期
我有一個表,其中包含許多帳戶(和子帳戶),另一個表包含許多訂單,他們是從不同的數據庫中取得的自定義表。
我想要做的是更新order_amt在訂單表中的order_val值的帳戶表,但如果有多個訂單與該帳戶我想從最早訂單日期的訂單金額。
帳戶表
Acc _Num..........Comp_Name.......Order_Amt.......Int_Id
123456789-1.....ABC Ltd.......................................123456789
123456789-2.....ABC Ltd.......................................123456789
987654321-1.....Xyz Ltd.........................................987654321
987654321-2.....Xyz Ltd.........................................987654321
訂單表
Order_Num.....Order_Dt.....Order_Val.....Acc_num
1......................01/01/13......£20.00...........123456789
2......................01/01/14......£10.00...........123456789
3......................01/01/10......£100.00..........987654321
4......................01/01/11......£200.00..........987654321
所以對於帳戶123456789-1 & 2 =£20.00和從987654321-1 & 2 ORDER_AMT將100.00£。
UPDATE accounts a
SET a.order_amt =
(
SELECT order_val
FROM orders o
WHERE a.int_id = o.acc_num
AND EXISTS
(
SELECT MIN(order_dt)
FROM orders oa
WHERE o.order_num = oa.order_num
);
我收到一些錯誤,包括多行返回的錯誤?任何人都可以幫我嗎?
親切的問候
伊甸園