问一下UPDATE想用WHERE条件中某表的字段的值怎么写

evaELLIS 2013-02-27 04:51:06
看一下一段SQL,我想在更新字段值时,用到WHERE条件中某个表的某个字段的值,应该怎么改,
下面的FT2.PLANSEQ,报错,00904

UPDATE ATP_MACTH_DETAIL MD
SET MD.SEQBDATE = sysdate,
MD.ATPSTAT = '2',
MD.ATPSPLNO = FT2.PLANSEQ,
MD.DLV1 = ''
WHERE exists (SELECT 1
FROM ATP_ACCREDITATION_FORET AF, ATP_FORE_T2 FT2
WHERE MD.OMSORDER = AF.OMSORDER
AND MD.OMSITEM = AF.OMSITEM
AND AF.MATNO = FT2.MATNO
AND AF.BATCH = FT2.BATCH
AND AF.POSNO = FT2.POSNO
AND MD.ATPSTAT = '1'
AND AF.STATUS = '2');
...全文
506 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
翁少 2013-03-13
  • 打赏
  • 举报
回复
UPDATE ATP_MACTH_DETAIL MD SET MD.SEQBDATE = sysdate, MD.ATPSTAT = '2', MD.ATPSPLNO = (SELECT FT2.PLANSEQ FROM ATP_ACCREDITATION_FORET AF, ATP_FORE_T2 FT2 WHERE MD.OMSORDER = AF.OMSORDER AND MD.OMSITEM = AF.OMSITEM AND AF.MATNO = FT2.MATNO AND AF.BATCH = FT2.BATCH AND AF.POSNO = FT2.POSNO AND MD.ATPSTAT = '1' AND AF.STATUS = '2') MD.DLV1 = '' ;
liubin041102 2013-03-01
  • 打赏
  • 举报
回复
update xxx set (t.a,t.b,t.c) = (select a,b,c from yyy,zzz where ``````) where exists (select 1 from from yyy,zzz where ``````)
洋小葱 2013-02-28
  • 打赏
  • 举报
回复
同意一楼的,换成子查询吧!
fw0124 2013-02-27
  • 打赏
  • 举报
回复
改成MD.ATPSPLNO = ATP_FORE_T2.PLANSEQ?
  • 打赏
  • 举报
回复
1:替换成子查询 2:百度merge into 看符合更新的要求不

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧