合同表ht
合同所在组织id 合同编号 供应商id
fcontrolunitid fnumber fpartbid
xxx001 合同1 yyy101
xxx001 合同2 yyy102
xxx001 合同3 yyy103
xxx001 合同4 yyy201
xxx001 合同5 yyy202
xxx001 合同6 yyy203
xxx001 合同7 yyy301
xxx001 合同8 yyy302
xxx001 合同9 yyy303
xxx002 合同10 yyy101…
xxx003 合同11 yyy101…
xxx004 合同12 yyy101…
… … …
供应商表gys
供应商所在组织id 供应商id 供应商名称
fadmincuid fid fname
xxx001 yyy101 供应商AA
xxx001 yyy102 供应商BB
xxx001 yyy103 供应商CC
xxx002 yyy201 供应商AA
xxx002 yyy202 供应商BB
xxx002 yyy203 供应商CC
xxx003 yyy301 供应商AA
xxx003 yyy302 供应商BB
xxx003 yyy303 供应商CC
… … …
组织表zz
组织id
fid
xxx001
xxx002
xxx003
… 合同表中合同4-合同9的供应商id错误,正确的供应商应该是相同组织id对应的同名的供应商
因为供应商名称相同导致错误,如何通过oracle sql语句update更新为正确的。
表中数据较多,求大神指点,谢谢!
合同所在组织id 合同编号 供应商id
fcontrolunitid fnumber fpartbid
xxx001 合同1 yyy101
xxx001 合同2 yyy102
xxx001 合同3 yyy103
xxx001 合同4 yyy201
xxx001 合同5 yyy202
xxx001 合同6 yyy203
xxx001 合同7 yyy301
xxx001 合同8 yyy302
xxx001 合同9 yyy303
xxx002 合同10 yyy101…
xxx003 合同11 yyy101…
xxx004 合同12 yyy101…
… … …
供应商表gys
供应商所在组织id 供应商id 供应商名称
fadmincuid fid fname
xxx001 yyy101 供应商AA
xxx001 yyy102 供应商BB
xxx001 yyy103 供应商CC
xxx002 yyy201 供应商AA
xxx002 yyy202 供应商BB
xxx002 yyy203 供应商CC
xxx003 yyy301 供应商AA
xxx003 yyy302 供应商BB
xxx003 yyy303 供应商CC
… … …
组织表zz
组织id
fid
xxx001
xxx002
xxx003
… 合同表中合同4-合同9的供应商id错误,正确的供应商应该是相同组织id对应的同名的供应商
因为供应商名称相同导致错误,如何通过oracle sql语句update更新为正确的。
表中数据较多,求大神指点,谢谢!
解决方案 »
- 求教一个PL/SQL 程序
- 关于sqlplus的一个登录问题?
- 数据库恢复、急、急、在线等!!!
- Oracle导入imp时,报错:IMP-00016: 不支持要求的字符集转换(从类型31到852)
- 请大家帮忙看看如下的视图创建过程:跨用户表间的视图创建。
- oracle 用生日计算年龄
- 大家都用什么复制工具
- 这个SQL该如何写?
- 本人太菜了实在搞不明白,这条SQL语句怎么会产生这样的结果?
- vm virtualbox 异常关闭 求大神帮我
- windows系统,oracle连接本地服务器,报错“ORA-12523” 监听程序无法找到适用于客户机连接的例程
- Oracle 存储过程中的临时表数据自动清空
与合同所在组织相同的组织id下的同名的供应商
比如:合同4所在组织id是xxx001,对应相同组织id的供应商id有yyy101,yyy102,yyy103等
其供应商应该是yyy101(名称为供应商AA),而不应该是yyy201(名称也为供应商AA)
如何写语句呢?
谢谢。
(select fid
from t_gys g1
where h.FCONTROLUNITID=g1.fadmincuid and g1.fname in (select fname from t_gys g2 where g2.FID=h.FPARTBID)
)
where substr(fnumber,3)>=4 and substr(fnumber,3)<=9
但是实际还有很多合同的供应商都是错误的,错误的不止一个供应商
即子查询返回多个值,如何做呢?
谢谢啦!!!
因为合同表中供应商id和供应商表中id是关联字段,现在要update合同表的供应商id,导致update语句报错。
另外4楼update语句子查询结果返回多指,导致不能直接更新。方法1:
临时解决方法是把合同表的id也取出来,并把关联查询到的信息create到一个临时表
然后根据合同表的id和临时表的id关联,然后update合同表的供应商id。
方法2:
如果不使用临时表,可用4楼的方法,但要使用游标和循环,语句需要修改一下。
目前写的语句报错,还没调试好。暂时用方法1解决。