说明:
A表的记录数都包含在B表,A表数量都小于等于B表。需要:
1:B.数量-A.数量=C.数量
2: 得到B表的全部记录数条件:
where A.定箱编号 = B.定箱编号 and A.产品编码 = B.产品编码数据:A:
定箱编号 产品编码 数量
KM-458 AT346US346-2-1 1
KM-458 P51137-B 2
KM-459 K-T346US-1S346 3
KM-459 K-T346US-2S346 1
KM-459 P51137-B 1
B:
定箱编号 产品编码 数量
KM-458 AT346US346-2-1 3
KM-458 P51137-B 6
KM-458 P51138-H 3
KM-459 K-T346US-1S346 8
KM-459 K-T346US-2S346 6
KM-459 P51137-B 4
KM-459 P51138-H 6
C:
定箱编号 产品编码 数量
KM-458 AT346US346-2-1 2
KM-458 P51137-B 4
KM-458 P51138-H 3
KM-459 K-T346US-1S346 5
KM-459 K-T346US-2S346 5
KM-459 P51137-B 3
KM-459 P51138-H 6
A表的记录数都包含在B表,A表数量都小于等于B表。需要:
1:B.数量-A.数量=C.数量
2: 得到B表的全部记录数条件:
where A.定箱编号 = B.定箱编号 and A.产品编码 = B.产品编码数据:A:
定箱编号 产品编码 数量
KM-458 AT346US346-2-1 1
KM-458 P51137-B 2
KM-459 K-T346US-1S346 3
KM-459 K-T346US-2S346 1
KM-459 P51137-B 1
B:
定箱编号 产品编码 数量
KM-458 AT346US346-2-1 3
KM-458 P51137-B 6
KM-458 P51138-H 3
KM-459 K-T346US-1S346 8
KM-459 K-T346US-2S346 6
KM-459 P51137-B 4
KM-459 P51138-H 6
C:
定箱编号 产品编码 数量
KM-458 AT346US346-2-1 2
KM-458 P51137-B 4
KM-458 P51138-H 3
KM-459 K-T346US-1S346 5
KM-459 K-T346US-2S346 5
KM-459 P51137-B 3
KM-459 P51138-H 6
update C表 set 数量=B.数量-A.数量 from A表 A,B表 B where A.定箱编号 = B.定箱编号 and A.产品编码 = B.产品编码
select b.定箱编号,b.产品编码 数量=b.数量-a.数量
from A right join B on a.定箱编号=b.定箱编号 and a.产品编码=b.产品编码
FROM A RIGHT JOIN B
ON A.定箱编号 = B.定箱编号 and A.产品编码 = B.产品编码
FROM A RIGHT JOIN B
ON A.定箱编号 = B.定箱编号 and A.产品编码 = B.产品编码
(
CaseID varchar(10)
,ProductID varchar(20)
,Amount int
);
declare @table2 table
(
CaseID varchar(10)
,ProductID varchar(20)
,Amount int
);
insert into @table1
values('KM-458','AT346US346-2-1',1),
('KM-458','P51137-B',2),
('KM-459','K-T346US-1S346',3),
('KM-459','K-T346US-2S346',1),
('KM-459','P51137-B',1);
insert into @table2
values('KM-458','AT346US346-2-1',3),
('KM-458','P51137-B',6),
('KM-458','P51138-H',3),
('KM-459','K-T346US-1S346',8),
('KM-459','K-T346US-2S346',6),
('KM-459','P51137-B',4),
('KM-459','P51138-H',6);select t2.CaseID
,t2.ProductID
,t2.Amount-isnull(t1.Amount,0)
from @table1 t1
right join @table2 t2
on t1.ProductID=t2.ProductID and t1.CaseID=t2.CaseID
order by t2.CaseID,t2.ProductID