首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

MS-SQL两表比较再更新其中一个表的有关问题,请看描述

2012-12-17 
MS-SQL两表比较再更新其中一个表的问题,请看描述:两表对比更新字段的问题,直入主题:1、表A:A01(编号) | A02

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

热点排行