QUOTE
Declare @sjid nvarchar(10), @year NCHAR(4)
SET @year=2015
Declare tmp CURSOR FOR SELECT sjid FROM SUBJECT WHERE YEAR=@year
OPEN tmp
FETCH NEXT FROM tmp INTO @sjid
WHILE @@FETCH_STATUS=0
BEGIN
IF (SELECT COUNT(*) FROM COURSE WHERE SJID=@sjid)<0
......
ELSE
.......
......
END
SET @year=2015
Declare tmp CURSOR FOR SELECT sjid FROM SUBJECT WHERE YEAR=@year
OPEN tmp
FETCH NEXT FROM tmp INTO @sjid
WHILE @@FETCH_STATUS=0
BEGIN
IF (SELECT COUNT(*) FROM COURSE WHERE SJID=@sjid)<0
......
ELSE
.......
......
END
The "Select COUNT(*) from course...." seem outcome
Select COUNT(*) from COURSE where SJID=MATH
which got error coz the SJID is nvarchar it should be use
Select COUNT(*) from COURSE where SJID='MATH'
i tried put SJID='@sjid' but it run it become SJID='@sjid' which is not using values of @sjid
using SJID=''''+@sjid+'''' also fail , this i had tried and success if i put whole query as string then EXEC it
but when it go to IF-Else , it cant read IF(EXEC(@string))<0