update 问题

mmhhllRen 2004-11-22 10:03:44
update billdetail k1
set unitaccount =( /*这里的unitaccount随baseunitbank表中单位不同而不同
select unitaccount from baseunitbank k2
where k1.unitcode = k2.unitcode
)
where k1.billno='2004080001'

billdetail单据细表(单位编码unitcode,单位账户unitaccount )
baseunitbank单位银行表(存放单位编码unitcode,单位账户unitaccount )
就是说上面的update也应该是从第一条到最后一条顺序执行吧

...全文
136 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
phant0m 2004-11-24
  • 打赏
  • 举报
回复
楼主的意思是,k1.unitcode = k2.unitcode and k1.billno='2004080001'的才更新吧?
这样的话,就应该这么写
update billdetail k1
set unitaccount =( select unitaccount from baseunitbank k2
where k1.unitcode = k2.unitcode
)
where k1.billno='2004080001' and exists(select 1 from baseunitbank k2 where k1.unitcode=k2.unitcode)

newuse 2004-11-24
  • 打赏
  • 举报
回复
你们全都写错了应该怎么写
update billdetail k1
set unitaccount =( select unitaccount from baseunitbank k2
where k1.unitcode = k2.unitcode and k1.billno='2004080001'
)
where exists(select 1 from baseunitbank k2 where k1.unitcode=k2.unitcode and k1.billno='2004080001')

给分
ORARichard 2004-11-22
  • 打赏
  • 举报
回复
应该是满足kl.billno='2004080001'的记录被更新。
但最好写成这样:
update billdetail k1
set unitaccount =( select unitaccount from baseunitbank k2
where k1.unitcode = k2.unitcode
)
where k1.billno='2004080001' and exists(select 1 from baseunitbank k2 where k1.unitcode=k2.unitcode)

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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