下面是MsSQL的sql语句:
update CUTOTAL CUTOTAL set TEACH_NO = select CUDATATMP.TEACH_NO from CUDATATMP CUDATATMP where CUTOTAL.COURSE_NO=CUDATATMP.COURSE_NO and CUTOTAL.CLASS_NO=CUDATATMP.CLASS_NO and CUTOTAL.SEM_NO='666' and CUDATATMP.SEM_NO='666'
oralce sql:
???
update CUTOTAL CUTOTAL set TEACH_NO = select CUDATATMP.TEACH_NO from CUDATATMP CUDATATMP where CUTOTAL.COURSE_NO=CUDATATMP.COURSE_NO and CUTOTAL.CLASS_NO=CUDATATMP.CLASS_NO and CUTOTAL.SEM_NO='666' and CUDATATMP.SEM_NO='666'
oralce sql:
???
set TEACH_NO =
( select a.TEACH_NO
from CUDATATMP a
where b.COURSE_NO=a.COURSE_NO
and b.CLASS_NO=a.CLASS_NO
and b.SEM_NO='666'
and a.SEM_NO='666')
可以在mssql run的。
其实就是个批量更新,条件就是where语句那样。to: licsth()
你那个语句可以执行,但是是把cutotal这表全部多更新了!不符合要求
set TEACH_NO =
( select a.TEACH_NO
from CUDATATMP a
where b.COURSE_NO=a.COURSE_NO
and b.CLASS_NO=a.CLASS_NO
and b.SEM_NO='666'
and a.SEM_NO='666')
where exists(select a.TEACH_NO
from CUDATATMP a
where b.COURSE_NO=a.COURSE_NO
and b.CLASS_NO=a.CLASS_NO
and b.SEM_NO='666'
and a.SEM_NO='666')