前言
做顾问经常会碰到需要从B表将某些字段的值更新到A表中对应的字段,业务顾问通常的做法是将A、B表中的数据导出到EXCEL,然后VLOOKUP匹配,完成后再导回到系统中,这种费时费力,数据量大的情况下工作量极其大,还容易出错。
这时如果你会SQL,那么 10秒钟 或许就够了。
下面介绍三种SQL写法( DB02中执行,ABAP暂时不支持 )
写法一
update a set a.waers = b.waers, a.erdat = b.erdat from ztsd019_i as a join ztsd019_h as b on a.mandt = b.mandt and a.vbeln = b.vbeln
ztsd019_h为表头行, ztsd019_i 为明细行,将表头行的币别字段、创建日期更新到明细行(关联字段为mandt和vbeln)
写法二
update a set a.waers = b.waers, a.erdat = b.erdat from ztsd019_i as a,ztsd019_h as b where a.mandt = b.mandt and a.vbeln = b.vbeln
写法三
update ztsd019_i set ( waers,erdat ) = ( select waers,erdat from ztsd019_h where mandt = ztsd019_i.mandt and vbeln = ztsd019_i.vbeln )
总结
更新数据需谨慎,DB02中需要添加client表字段关联, 另外建议先SELECT 查看数据并做验证,无误后再将SELECT语句改为UPDATE。
表关联更新也不仅仅只限于两个表,多个表也是同样适用的,有需要的请自行尝试。
: , , , , , , , , , , , , 。 视频 小程序 赞 ,轻点两下取消赞 在看 ,轻点两下取消在看
精选留言
ρ=a(1-sinθ)来自重庆
[强][强][强],三叔出品,必属精品~
ABAP三叔来自
SQL是开发基本功,现在各种ORM框架,很多开发人员基本功这项基本功不够扎实
ρ=a(1-sinθ)来自重庆
是的,我一般常用DB02做查询数据使用,没有进一步升华[捂脸]
放假回家来自广东
DB02 update 数据后,能查到信息变更记录吗?
ABAP三叔来自
没有的
放假回家来自广东
[旺柴]又一个危险操作