Oracle 在集合中使用算术表达式进行更新

Oracle 在集合中使用算术表达式进行更新,oracle,sql-update,Oracle,Sql Update,我想将更新子查询中选定列的值相乘,然后得到一个新值,如下所示: 新的A.GROSS值将是TAO中的A.GROSS乘以分割文件中选定的B.PERCENT_值 我试过如下: UPDATE PS_HR_TAO10 A SET A.GROSS = (A.GROSS_AMT * B.PERCENT_VALUE) (SELECT B.PERCENT_VALUE FROM PS_Z_NEW_FY_SPLIT B WHERE A.EMPLID = B.EMPLID) WHERE A.PAY_END_DT =

我想将更新子查询中选定列的值相乘,然后得到一个新值,如下所示:

新的A.GROSS值将是TAO中的A.GROSS乘以分割文件中选定的B.PERCENT_值

我试过如下:

UPDATE PS_HR_TAO10 A SET A.GROSS = (A.GROSS_AMT * B.PERCENT_VALUE) 
(SELECT B.PERCENT_VALUE FROM PS_Z_NEW_FY_SPLIT B
WHERE A.EMPLID = B.EMPLID)
WHERE A.PAY_END_DT = '09-JUL-2016';

我会选择merge语句:

merge into PS_HR_TAO10 A
using (select EMPLID, PERCENT_VALUE from PS_Z_NEW_FY_SPLIT) B
on (A.EMPLID = B.EMPLID)
when matched then update set
A.GROSS = A.GROSS_AMT * B.PERCENT_VALUE
WHERE A.PAY_END_DT = '09-JUL-2016';

再次……同样……但这次你跑得更快了:-。我删除了我的,@XING是的,我们只是在看同样的问题。别担心,我马上就要走了;谢谢,但我得到的声明无效。起跑线1。结束行6。脚本文件中出现错误。起跑线1。结束第6行我以SQL而不是脚本的形式执行此操作。请立即尝试。这是有效的SQL:更新PS_HR_TAO10 a set a.GROSS_AMT=从PS_Z_NEW_FY_SPLIT B中选择a.GROSS_AMT*B.PERCENT_值,其中a.EMPLID=B.EMPLID其中a.PAY_End_DT=到日期'2016年7月9日',“DD-MON-YYYY”和EXISTS从PS_Z_NEW_FY_SPLIT B中选择A.GROSS_AMT*B.PERCENT_值,其中A.EMPLID=B.EMPLID;