根据b表修改a表数据怎么写

-一个大坑 2020-12-31 04:35:34
有两个表lms.sap_materialmaster和plant.sap_materialmaster,需要根据MATNR=MATNR AND WERKS=WERKS AND DATAUPDATE=DATAUPDATE这个三个栏位不一样的修改数据(insert的我已经处理了)

UPDATE lms.sap_materialmaster a
SET MAKTX=:NEW.MAKTX,
...
ZZMTFK=:NEW.ZZMTFK
WHERE a.MATNR =b.MATNR
AND a.WERKS=b.WERKS
and b.dataupdate!=a.dataupdate;

...全文
571 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
richman2012 2021-01-16
  • 打赏
  • 举报
回复
1,2楼都可以,唯一注意的是如果无法找到b表中对应的数据时,究竟是跳过忽略还是更新为null,需要根据你的业务需求灵活采用1,2楼大佬的方案
wyqxrj 2020-12-31
  • 打赏
  • 举报
回复
UPDATE LMS.SAP_MATERIALMASTER A SET (MAKTX, .. . ZZMTFK) = (SELECT NEW.MAKTX,.. . NEW.ZZMTFK FROM PLANT.SAP_MATERIALMASTER WHERE A.MATNR = B.MATNR AND A.WERKS = B.WERKS AND B.DATAUPDATE != A.DATAUPDATE AND ROWNUM = 1) WHERE EXISTS (SELECT 1 FROM PLANT.SAP_MATERIALMASTER WHERE A.MATNR = B.MATNR AND A.WERKS = B.WERKS AND B.DATAUPDATE != A.DATAUPDATE)
微风轻轻 起 2020-12-31
  • 打赏
  • 举报
回复
UPDATE lms.sap_materialmaster a SET MAKTX=:NEW.MAKTX, ... ZZMTFK=:NEW.ZZMTFK WHERE exists (select 1 from plant.sap_materialmaster b where a.MATNR =b.MATNR AND a.WERKS=b.WERKS and a.dataupdate!=b.dataupdate); where 里面的条件根据你实际需求写

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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