1

複数のテーブルの複数の行を更新して複数の列を結合するのに問題があります。policyというテーブルの有効期限を更新し、現在施行されているポリシーを持っているすべてのスタッフに、rating_recordというテーブルのレートを10%割引する必要があります。すべての基準を満たす10%の割引を提供することはできますが、有効期限を更新する方法がわかりません。助けてください。

私が今まで持っているコードは、2番目の更新機能を使用してすべてのスタッフの有効期限を1月31日にする必要があるというものです。これは、SQL開発者を使用してOracle10gで実行する必要があります

    update rating_record
     set rate=(rate-(100/10)) where exists
    (select rating_record.rate from
    rating_record, coverage, policy, insured_by, client, person, staff
    where
   staff.pid = person.pid and
    client.pid = person.pid and
     client.cid = insured_by.cid and
    policy.pno = insured_by.pno and
     policy.pno = coverage.pno and 
    coverage.coid = rating_record.coid and
     policy.status = 'E');
4

1 に答える 1

0

UPDATE ステートメントでは、1 つのベース テーブルの値のみを更新できます。代わりに、プロシージャを作成し、トランザクションで 2 つの更新ステートメント (更新するテーブルごとに 1 つ) をラップする必要があります。

于 2012-12-08T01:04:42.023 に答える