1

私は選択から更新を行う必要があります私はこの行でこの2つのテーブルを取得しました

T1

customer_number | trx number     | amount_due_remaining
____________________________________________________
309514          |MM1218881/2011  | 0
309514          |MM1218882/2011  | 0
309514          |MM1218903/2011  | 0
309514          |MM1218905/2011  | 0

T2

contract | numdoc         | import
___________________________________
309514 |MM1218881/2011  | 2000,77
309514 |MM1218882/2011  | 1000,45
309514 |MM1218903/2011  | 1000,23
309514 |MM1218905/2011  | 2500,12

インポートにamount_due_remaining列のT1の値をT2に入力する必要があります

私はこのクエリを行います

update dbestrconto T1
SET T1.IMPORTO = (
SELECT nvl(T2.AMOUNT_DUE_REMAINING,0)
FROM XXENE_V_CCML_TRANSACTIONS@XXENE T2
WHERE T2.customer_number=T1.contratto
AND T2.customer_number='3095614'
and T2.TRX_NUMBER=T1.NUMDOC
)

しかし間違っています、助けてください。

よろしく、ロドルフォ

4

1 に答える 1

0

すべての行を更新しています - UPDATE に where 句を追加する必要があります。

代わりに MERGE を使用することをお勧めします。

merge into dbestrconto  t1 
using xxene_v_ccml_transactions@xxene t2
on  (t2.customer_number=t1.contratto
and t2.trx_number=t1.numdoc)
when matched then update set 
    t1.importo = nvl(t2.amount_due_remaining,0)
where  t2.customer_number='3095614';

よろしく。はき。

于 2013-02-15T13:11:55.017 に答える