注册 登录
编程论坛 SQL Server论坛

求SQL查询修改用B表的内容修改A表

汭水飞天 发布于 2016-02-10 00:11, 6810 次点击
请教SQL语句,依据表“B”中的“政治面貌”和“学历”修改更新表“A”的相关内容,表“B”中没有的记录表“A”不更新,两表中“职员代码”是相同的。如下表,请问如何用SQL语句完成:
A表
序号    姓名    职员代码    性别    进入时间    民族    政治面貌    学 历
1    崔文辉    1166    男    2010-09-01    汉族    中共党员    本科
2    尹拴存    1167    男    1992-09-01    汉族    群众    大专
3    杨兴文    1171    男    1993-02-25    汉族    群众    中专
…… …… …… …… …… …… …… ……………………
36    李登玉    1144    男    2006-09-01    汉族    群众    中专
B表
序号    姓名    职员代码    政治面貌    学 历
1    朱彩萍    1183    中共党员    本科
2    张红艳    1526    中共党员    硕士研究生
3    高春娥    1818    中共党员    本科
4    李小霞    1761    中共党员    本科



只有本站会员才能查看附件,请 登录



[此贴子已经被作者于2016-2-12 23:43编辑过]

9 回复
#2
hu9jj2016-02-11 08:11
建议看看帮助文件中的update命令。
#3
紫月一殇雪2016-02-11 16:39
作业??
#4
汭水飞天2016-02-11 20:25
回复 2楼 hu9jj
版主,我只更新“政治面貌”用如下公式,但是提示“必须使用一个可更新的查询”,一次更新“政治面貌”、“学历”就更不会了,我百度查了好多,此类例子太少,也没有试成功。还请版主赐教。
UPDATE A SET A.政治面貌=( Select B.政治面貌  from B  where B.职员代码=A.职员代码) Where A.职员代码  in (Select  B.职员代码  from B )


只有本站会员才能查看附件,请 登录



[此贴子已经被作者于2016-2-12 23:45编辑过]

#5
汭水飞天2016-02-11 20:27
回复 3楼 紫月一殇雪
我百度找了好多,像这种例子几乎没有,也没有试成功,下面是我参照写的语句,还是不行。
UPDATE A SET A.政治面貌=( Select B.政治面貌  from B  where B.职员代码=A.职员代码) Where A.职员代码  in (Select  B.职员代码  from B )




只有本站会员才能查看附件,请 登录







[此贴子已经被作者于2016-2-12 23:41编辑过]

#6
tlliqi2016-02-14 09:12
UPDATE A SET 政治面貌=(Select B.政治面貌 from B where B.职员代码=A.职员代码)
#7
汭水飞天2016-02-16 18:27
回复 5楼 汭水飞天
浏览器出问题了

[此贴子已经被作者于2016-2-17 10:59编辑过]

#8
汭水飞天2016-02-17 10:59
回复 6楼 tlliqi
版主您好,我用MDBPlus.EXE运行“UPDATE A SET 政治面貌=(Select B.政治面貌 from B where B.职员代码=A.职员代码)”  和  “UPDATE A SET A.政治面貌=( Select B.政治面貌  from B  where B.职员代码=A.职员代码) Where A.职员代码  in (Select  B.职员代码  from B )”时都是提示“操作必须使用一个可更新的查询”,还请版主赐教。

只有本站会员才能查看附件,请 登录
#9
汭水飞天2016-02-18 02:08
怎么回事啊,问题没有解决呢,怎么就结贴了???
#10
汭水飞天2016-02-27 00:45
UPDATE A SET A.政治面貌=( Select B.政治面貌  from B  where B.职员代码=A.职员代码) Where A.职员代码  in (Select  B.职员代码  from B )
此语句在SQL管理器下可以运行,但是在MDBPlus.EXE就是不能运行。
1