求大神解答一下一个sql语句问题。

A,B 两张表  现在要求在满足条件的时候,去更新表A,表A中是有数据的。(会出现满足条件时,将新数据替换原有数据)


if B.WORK_STATE='已报结' 

{

    if  B.WORK_NUMBER=A.WORK_NUMBER

    {

         A.WORK_STATE=B.WORK_STATE 

    

        insert into B表 select  CITY,COMPANY  from B表 ;)

    }

}


Elison_man 发布于 2019-10-14 15:26
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
啊哈Lv2见习互助
发布于2019-10-14 16:52(编辑于 2019-10-15 14:54)
update A表 A set (A.CITY,A.COMPANY,A.WORK_STATE)=
(
select B.CITY,B.COMPANY,B.WORK_STATE FROM B表 B where B.WORK_STATE='已报结' and B.WORK_NUMBER=A.WORK_NUMBER
)
where exists(select 1 from B表 B where B.WORK_STATE='已报结' and B.WORK_NUMBER=A.WORK_NUMBER)

要还是不行,我也不会了。。。参考 :https://www.cnblogs.com/chenweichu/p/7560489.html

  • Elison_man Elison_man(提问者) 报错的啊,我是想用SQL实现这样的结果
    2019-10-15 10:28 
  • 啊哈 啊哈 回复 Elison_man(提问者) 你的是什么数据库?我看这个在mysql里是能执行的
    2019-10-15 10:53 
  • Elison_man Elison_man(提问者) 回复 啊哈 我是oracle数据库,我执行的时候 报错的地方是 update A表 A,B表 B 这里 ,不知道为啥,逗号也是英文的
    2019-10-15 13:49 
  • 啊哈 啊哈 回复 Elison_man(提问者) 修改了回答,再试一下
    2019-10-15 14:45 
  • Elison_man Elison_man(提问者) 回复 啊哈 update tests2 a set(a.id,a.age) = (select b.id,b.age from tests b where b.name=a.name) WHERE a.satis<>\'已报结\'; 您看这个,也可以。还是很谢谢您,我就直接点击采纳你的了。
    2019-10-15 17:39 
最佳回答
0
黄源Lv6中级互助
发布于2019-10-14 15:47

没看懂你要干嘛

  • 3关注人数
  • 567浏览人数
  • 最后回答于:2019-10-15 14:54
    请选择关闭问题的原因
    确定 取消
    返回顶部