子查询,返回的值多于一个,不能用“=”。
楼主是想,用dor1.leaveNum,一一对应更新Dor_leaveBedNum吗?试下以下语句吧:
update dormitory
set Dor_leaveBedNum=dor1.leaveNum 
from dor1,dormitory 
where dor1.num=dormitory.Dor_num

解决方案 »

  1.   

    update dormitory
    set Dor_leaveBedNum=(select top 1 dor1.leaveNum
    from dor1,dormitory where dor1.num=dormitory.Dor_num)
      

  2.   

    我编译没有错误啊?
    一般这样错误我都把=号 换成in
    不过效率低了点 但是这句我编译没错误。运行就不知道了回楼上,你编译的时候只是检查语法上的错误,
    而在语法上你这条SQL语句是没有错的.
    你这条SQL语句在运行的时候如果字查询返回记录为
    1条时就不会出错了.
      

  3.   

    可能是你的子查询中返回了多于一条的数据,
    而你更新的是一条数据,
    或者说你的条件dor1.num=dormitory.Dor_num 不能确定唯一的一行记录。
    看一下你的字段(num,Dor_num )中是否有NULL的记录