1

我在更新多个表中的多行和连接多个列时遇到问题,我必须更新名为 policy 的表中的到期日期,并且还为当前拥有强制执行策略的所有员工在名为 rating_record 的表中提供 10% 的折扣。我可以提供满足所有条件的 10% 折扣,但不知道如何更新到期日期 - 请帮助!

我到目前为止的代码是我必须使用第二次更新功能使所有员工的到期日期为 1 月 31 日。这需要在 Oracle 10g 中使用 SQL 开发人员完成

    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 语句中更新一个基表中的值。相反,您应该创建一个过程,并在事务中包装两个更新语句(每个要更新的表一个)。

于 2012-12-08T01:04:42.023 回答