请问一条SQL语句,具体内容如下:    有关于 Update
请问一条SQL语句,具体内容如下:         
 有两张表         学生表         成绩表   
 表的记录: 
 学生表(姓名,性别,年级,分数) 
 张三   男      大一      80分 
 李四   男      大二      90分   
 成绩表(姓名,分数) 
 张三      70分 
 张三      70分 
 李四      60分   
 我现在要    
 Update   学生表    
 set   分数   =      (select   分数   from   成绩表   where   学生表.姓名   =   成绩表.姓名)   
 可是这样会出现   单行子查询返回多个结果   
 因此我想加入    
 Update   学生表    
 set   分数   =      (select   分数   from   成绩表   where   学生表.姓名   =   成绩表.姓名) 
 where   学生表.姓名   in    
 (select   姓名   from   成绩表   group   by   姓名   having   count(*)   =   1)     
 目的就是想跳过张三这个学生,只更新李四的就好了,但是还会出现单行子查询返回多个结果这条错误     
 请注意:   更新时,是要跳过在成绩表里有重复记录的学生!     
 谢谢大家!!!     
------解决方案--------------------create table 学生表(姓名 varchar(10), 性别 varchar(10), 年级 varchar(10), 分数 varchar(10)) 
 insert 学生表 select  '张三 ',  '男 ',   '大一 ',   '80分 ' 
 union all select  '李四 ',  '男 ',   '大二 ',   '90分 '   
 create table 成绩表(姓名 varchar(10), 分数 varchar(10)) 
 insert 成绩表 select  '张三 ',   '70分 ' 
 union all select  '张三 ',   '70分 ' 
 union all select  '李四 ',   '60分 '   
 update 学生表 set 分数=tmp.分数 
 from 
 ( 
 select * from 成绩表 tmp 
 where (select count(*) from 成绩表 where 姓名=tmp.姓名)=1 
 )tmp 
 where 学生表.姓名=tmp.姓名   
 select * from 学生表 
 --result 
 姓名         性别         年级         分数          
 ---------- ---------- ---------- ----------  
 张三         男          大一         80分 
 李四         男          大二         60分   
 (2 row(s) affected)