MS-SQL两表比较再更新其中一个表的问题,请看描述:
两表对比更新字段的问题,直入主题:
1、表A:
A01(编号) | A02(数量) | A03(已完成数量) | A04(未完成数量=A02-A03)
------------------------------
0001 | 100 | 0 |100
0002 | 200 | 0 |200
0003 | 300 | 0 |300
2、表B:
B01(编号) | B02(数量)
-----------------------
0001 | 80
0002 | 150
3、现在通过表B的内容来更新表A的A03和A04字段,即想要得到:
A01(编号) | A02(数量) | A03(已完成数量) | A04(未完成数量=A02-A03)
------------------------------
0001 | 100 | 80 |20
0002 | 200 | 150 |50
0003 | 300 | 0 |300
[最优解释]
update A set A03=b.b02,A04=A01-b.b02
from A inner join B on a.a01=b.b01
--seelct
SELECT A01 , A02 , B02 , A01-B.B02
FROM A
INNER JOIN B
ON a.A01 = b.B01
--update
UPDATE A SET A03=B02 , A04 = A01-B.B02
FROM A
INNER JOIN B
ON a.A01 = b.B01