sql 请教update语句in多个值时,进行多次更新

updateAsetA.amount=B.amountwhereA.idin(selectidfromCwhereidin(B.id))注:B.id值是多个子查询C.id... update A set A.amount=B.amount
where A.id in (select id from C where id in (B.id))
注:B.id值是多个子查询C.id也是多个。
我执行代码时,仅更新了B.id的第一个值。请问如何根据B.id进行多次数据更新?
update A set A.amount=B.amount
from a,b where A.id in (select id from C where id in (B.id))
展开
 我来答
百度网友faadf46
高粉答主

2019-12-10 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:75.9万
展开全部

在数据库的操作中,更新数据,是很常见的情况。其中sql 请教update语句in多个值时,进行多次更新的方法为:

1、创建一个临时表,用于演示sqlserver语法中update更新修改使用方法。

2、创建另外一个临时表,用于演示如何将一个临时表的数据更新到另外一个临时表。

3、往临时表中插入几行测试数据,其中的Total栏位都不插入值。

4、查询临时表中的测试数据select * from #tblUpdate;select * from #tblTotal。

5、使用update更新临时表#tblUpdate中的Total结果,假设Total = num * price update #tblUpdate set Total = Num * Price。

6、再次查询临时表#tblUpdate的结果,可以看到之前为NULL的Total列都有值了。

注意事项:

SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。

百度网友cc7dce5
推荐于2017-12-16 · TA获得超过371个赞
知道小有建树答主
回答量:436
采纳率:0%
帮助的人:378万
展开全部
你这个代码我看的晕晕忽忽的

如果是我

update A SET A.amount = (select amount from B where id = A.id)

where A.id in(select id from c where id in(select id from B))

我猜的 你想更新A表 amount 值等于B表 相对应的id下的 amount

并且 a的id范围 要在 c表和b表同时存在的id
更多追问追答
追问
不好意思写漏了,应该是:
update A set A.amount=B.amount
from a,b where A.id in (select id from C where id in (B.id))
主要是想让 A.amount=B.amount的累计。
比如:b.amount in(1,2,3,4,5)a.amount=b.amount(1+2+3+4+5)=15
追答
你还是把你3个表贴出来看看   不然这个真的越看越迷糊
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
spyhost
2015-01-26 · TA获得超过3132个赞
知道小有建树答主
回答量:946
采纳率:90%
帮助的人:104万
展开全部
说明你“select id from C where id in (B.id)” 只得到一个结果。
追问
我跟踪了是多个结果的,主要是A.amount这里如何多次更新,按照b.id的值进行更新。比如查出b.amount in(1,2,3,4,5)a.amount=b.amount(1+2+3+4+5)这样,不知道你清楚了没
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
惠企百科
2022-12-01 · 百度认证:北京惠企网络技术有限公司官方账号
惠企百科
惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。
向TA提问
展开全部

在数据库的操作中,更新数据,是很常见的情况。其中sql 请教update语句in多个值时,进行多次更新的方法为:

1、创建一个临时表,用于演示sqlserver语法中update更新修改使用方法。

2、创建另外一个临时表,用于演示如何将一个临时表的数据更新到另外一个临时表。

3、往临时表中插入几行测试数据,其中的Total栏位都不插入值。

4、查询临时表中的测试数据select * from #tblUpdate;select * from #tblTotal。

5、使用update更新临时表#tblUpdate中的Total结果,假设Total = num * price update #tblUpdate set Total = Num * Price。

6、再次查询临时表#tblUpdate的结果,可以看到之前为NULL的Total列都有值了。

注意事项:

SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式