挪到这里问一下啊

ksstone 2004-12-15 05:00:00
想达到这样的效果

表1
品名 数量 位置
a 10 0
b 10 0
a 2 1
b 2 1

表2
品名 数量 编号 位置 标示
a 3 001 0 x
b 3 001 0 x
a 2 002 0 x
b 2 002 0 x

运行update 语句后表1 a,b 0位置 数量 均变为15(如下)
表1
品名 数量 位置
a 15 0
b 15 0
a 2 1
b 2 1

access 下没有问题
.net下就是不行
update 表1.数量 set 表1.数量=表1.数量+表2.数量 from 表1 INNER JOIN 表2 ON 表1.品名 = 表2.品名 AND 表1.位置=表2.位置 WHERE 表2.标示 = 'x'

我运行呈现的结果 是为数量均为12 不知何故 请指教!!!!
...全文
83 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ksstone 2004-12-15
  • 打赏
  • 举报
回复
谢谢啦
ksstone 2004-12-15
  • 打赏
  • 举报
回复
是啊是啊 那请教如何做呢 用一句话的话
子陌红尘 2004-12-15
  • 打赏
  • 举报
回复
update 表1
set 表1.数量 = 表1.数量 + v.数量
from
表1
INNER JOIN
(select 品名, 位置, sum(数量) as 数量 from 表2 WHERE 标示 = 'x' group by 品名,位置) v
ON
表1.品名 = v.品名 AND 表1.位置= v.位置
LBYYBL 2004-12-15
  • 打赏
  • 举报
回复
access不会
子陌红尘 2004-12-15
  • 打赏
  • 举报
回复
当然不对,因为没有对表2的数据先求和,等于是先把值更新成10+3,后把值更新成10+2。

34,591

社区成员

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

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