查询更新 0.0.0.0.0.0.0.0

人间太皮 2013-08-27 07:09:10
表A,B都有字段 pid,value

更新A表value字段,加上B表中pid对应的value字段值


求方法。
...全文
191 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
人间太皮 2013-08-28
  • 打赏
  • 举报
回复
引用 5 楼 wwwwgou 的回复:
[quote=引用 4 楼 ai_quaner 的回复:] 现在A与B是一对多的关系,这种方式每次只取了B表的第一次计算,其它行没有计算。
UPDATE A
SET A.VALUE = a.vlaue + b.value
FROM tableA a
INNER JOIN (SELECT pid, value=SUM(value) FROM tableB) b
ON a.pid = b.pid
[/quote] ....唉,我居然没想到
Shawn 2013-08-28
  • 打赏
  • 举报
回复
引用 4 楼 ai_quaner 的回复:
现在A与B是一对多的关系,这种方式每次只取了B表的第一次计算,其它行没有计算。
UPDATE A
SET A.VALUE = a.vlaue + b.value
FROM tableA a
INNER JOIN (SELECT pid, value=SUM(value) FROM tableB) b
ON a.pid = b.pid
人间太皮 2013-08-28
  • 打赏
  • 举报
回复
引用 1 楼 qujunchang 的回复:

update a表 set value=b.value
from a表
left join b表 on a.pid=b.pid
引用 2 楼 hdhai9451 的回复:
不可用left join ,完全匹配用inner join
update a表 set value=b.value
from a表
inner join b表 on a.pid=b.pid
引用 3 楼 wwwwgou 的回复:
UPDATE A
SET A.VALUE = a.vlaue + b.value
FROM tableA a
INNER JOIN tableB b
ON a.pid = b.pid
现在A与B是一对多的关系,这种方式每次只取了B表的第一次计算,其它行没有计算。
Shawn 2013-08-27
  • 打赏
  • 举报
回复
UPDATE A
SET A.VALUE = a.vlaue + b.value
FROM tableA a
INNER JOIN tableB b
ON a.pid = b.pid
Andy__Huang 2013-08-27
  • 打赏
  • 举报
回复
不可用left join ,完全匹配用inner join
update a表 set value=b.value
from a表
inner join b表 on a.pid=b.pid
曲军昌 2013-08-27
  • 打赏
  • 举报
回复

update a表 set value=b.value
from a表
left join b表 on a.pid=b.pid

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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