现个表
cp表
产品编号,库存数量
001 100
002 20现在想通过cp表库存数量更新到kc表的库房数量,把某品的最大库房数量更新为CP的库存数量
实现:
kc表
产品编号,批号,库房数量
001 080201 100
001 080305 0
002 010101 0
002 010102 20
cp表
产品编号,库存数量
001 100
002 20现在想通过cp表库存数量更新到kc表的库房数量,把某品的最大库房数量更新为CP的库存数量
实现:
kc表
产品编号,批号,库房数量
001 080201 100
001 080305 0
002 010101 0
002 010102 20
前提是:cp表的产品编号唯一,否则就得聚合后再更新
udpate a
set 库房数量=isnull(b.库存数量,0) from kc a left join cp b on a.产品编号=b.产品编号
where cp.产品编号 = C.产品编号
where cp.产品编号 = C.产品编号 and C.产品编号 = kc.产品编号 anf C.批号 = kc.批号
看看这个对你是否有帮助
declare @cp表 table (产品编号 char(100),库存数量 int)
insert @cp表 select
'001', 100 union all select
'002', 20
declare @kc表 table (产品编号 char(100),批号 char(100),库房数量 int)
insert @kc表 select
'001', '080401', 100 union all select
'001', '080305', 0 union all select
'002', '010101', 0 union all select
'002', '010102', 20
update k set k.库房数量=c.库存数量 from @cp表 c,(select * from @kc表 kc where exists(select 1 from @kc表 where 产品编号=kc.产品编号 and 批号>kc.批号 )) k where k.产品编号=c.产品编号
select * from @kc表
cp表
产品编号,库存数量
001 100
002 20
kc表
产品编号,批号,库房数量
001 080201 80
001 080305 20
002 010101 0
002 010102 20
现在想通过cp表库存数量更新到kc表的库房数量,把某品的最大库房数量更新为CP的库存数量其它库房数量为0使其某产品的库存数量与sum(库房数量)相等,实现:
kc表
产品编号,批号,库房数量
001 080201 100
001 080305 0
002 010101 0
002 010102 20