T1表
编码 名称 数量
1001 酒 50
1002 烟 10
1003 茶 20
1002 烟 15T2表编码 名称 库存
1001 酒 100
1002 烟 100
1003 茶 100
1004 水 100想得到结果是
T2表编码 名称 库存
1001 酒 50
1002 烟 75
1003 茶 80
1004 水 100注意,T1表中数据有重复,并在操作的时候允许T2表中出现负数
其实也就是通过一张表的数量对另一张表进行批量增减,应该如何写?谢谢
编码 名称 数量
1001 酒 50
1002 烟 10
1003 茶 20
1002 烟 15T2表编码 名称 库存
1001 酒 100
1002 烟 100
1003 茶 100
1004 水 100想得到结果是
T2表编码 名称 库存
1001 酒 50
1002 烟 75
1003 茶 80
1004 水 100注意,T1表中数据有重复,并在操作的时候允许T2表中出现负数
其实也就是通过一张表的数量对另一张表进行批量增减,应该如何写?谢谢
insert into t1 select 1001,'酒',50
insert into t1 select 1002,'烟',10
insert into t1 select 1003,'茶',20
insert into t1 select 1002,'烟',15
create table t2(编码 int,名称 nvarchar(10),库存 int)
insert into t2 select 1001,'酒',100
insert into t2 select 1002,'烟',100
insert into t2 select 1003,'茶',100
insert into t2 select 1004,'水',100
go
update t2 set 库存=库存-isnull((select sum(数量) from t1 where 编码=t2.编码),0)
select * from t2
go
drop table t1,t2
/*
编码 名称 库存
----------- ---------- -----------
1001 酒 50
1002 烟 75
1003 茶 80
1004 水 100(4 行受影响)
*/