有2个表格,INVN_SBS
和INVC_ITEM
希望根据if active = '0'
和INVN_SBS.ITEM_SID
匹配以及INVNSBS.ITEM
INVN_SBS.DCS_CODE = 'SMP'
到目前为止,我有:
UPDATE INVN_SBS
SET ACTIVE='0'
FROM
INVN_SBS,
INVC_ITEM
WHERE
INVN_SBS.ITEM_SID = INVC_ITEM.ITEM_SID
and INVN_SBS.DCS_CODE='SMP'
然而,当我跑步时,我得到:
ORA-00933:SQL命令未正确结束。
我能够运行一个select语句来显示符合我标准的项目,但更新会给您带来麻烦。
答案 0 :(得分:1)
这是一种可能的解决方案:
UPDATE INVN_SBS
SET ACTIVE='0'
where
DCS_CODE='SMP' and
ITEM_SID in (
select ITEM_SID
from INVC_ITEM
)
如果您的主键支持它,这也应该有效:
UPDATE (
select INVN_SBS.ACTIVE
FROM
INVN_SBS,
INVC_ITEM
WHERE
INVN_SBS.ITEM_SID = INVC_ITEM.ITEM_SID
and INVN_SBS.DCS_CODE='SMP'
)
SET ACTIVE='0'
如果您的主键不支持第二种方法,它会在编译时通知您。