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
------其他解决方案--------------------十分感谢,原来这么简单,难道是我想复杂了!。。另外:第一行最后应该是A04=A02-b.b02
------其他解决方案--------------------------其他解决方案--------------------Good!