读书人

MS-SQL两表比较再更新其中一个表的有关

发布时间: 2012-12-17 09:31:40 作者: rapoo

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

引用:
SQL code
update A set A03=b.b02,A04=A01-b.b02
from A inner join B on a.a01=b.b01

[其他解释]
引用:
十分感谢,原来这么简单,难道是我想复杂了!。。另外:第一行最后应该是A04=A02-b.b02


引用:

SQL code
update A set A03=b.b02,A04=A01-b.b02
from A inner join B on a.a01=b.b01

[其他解释]
Good!
引用:
SQL code
--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


[其他解释]
还有一种方法用except找出来再update
[其他解释]
向大师学习了
引用:
还有一种方法用except找出来再update

读书人网 >SQL Server

热点推荐