回 帖 发 新 帖 刷新版面

主题:请问这个批量UPDATE的SQL语句如何写??

我的目的是想求还有多少库存
库存表                               购物表(一位消费者一次购买的商品情况)    
id   mc(代码) totalqty(购买总数)     mc(代码)    qty(购买数)   
11   aa                              11            2  
12   bb                              11            2
13   cc                              12            1
                                     13            1
我用的SQL语句
update 库存表 set totalqty=(select sum(qty) from 购物表 b where b.mc=mc)
结果如下:
库存表                                   
id   mc(代码) totalqty(购买总数)     
11   aa              6                
12   bb              6                
13   cc              6
以上这个结果显然是错误的,我想得到的正确结果是:
库存表                                   
id   mc(代码) totalqty(购买总数)     
11   aa              4                
12   bb              1                
13   cc              1

请问这个SQL语句如何写???



回复列表 (共4个回复)

沙发

update 库存表 
set totalqty=(select sum(qty) from 购物表 b where b.mc=mc)
where 购物表.mc=库存表.mc

板凳

update 库存表 set totalqty=b.qty
from 库存表,(select mc , qty from 购物表 group by mc )b
where 库存表.id=购物表.mc)

3 楼

update 库存表 set totalqty=b.qty
from 库存表,(select mc , qty from 购物表 group by mc )b
where 库存表.id=购物表.mc)

上面有点错误.
正确的是
update 库存表 set totalqty=b.qty
from 库存表,(select mc , sum(qty0 as qty from 购物表 group by mc ) as b
where 库存表.id=b.mc

4 楼

谢谢"潇洒老乌龟"兄的回贴

我来回复

您尚未登录,请登录后再回复。点此登录或注册