declare @i int
DECLARE ID_CURSOR CURSOR SCROLL 
FOR
   SELECT ID FROM Score1
Open ID_CURSOR
FETCH NEXT FROM ID_CURSOR INTO @i
WHILE(@@FETCH_STATUS=0)
    BEGIN
    
       (select V from Score1 where ID=@i-@knowledgeAvg)*16+100/SELECT STDEV(V) from dbo.Score1

        FETCH NEXT FROM ID_CURSOR INTO @i
    END
CLOSE ID_CURSOR
DEALLOCATE ID_CURSOR@knowledgeAvg 平均值高手帮我看看为什么“*”这提示 附近有语法错误

解决方案 »

  1.   

    SELECT 
       (select V*16+100 from Score1 where ID=@i-@knowledgeAvg)
    /(SELECT STDEV(V) from dbo.Score1)最好还要判断是不是为0吧
      

  2.   

    (select V*16+100 from Score1 where ID=@i-@knowledgeAvg)你确定这里是一条数据?
      

  3.   

    (select V from Score1 where ID=@i-@knowledgeAvg)*16+100/SELECT STDEV(V) from dbo.Score1
    改成
    SELECT ((select V from Score1 where ID=@i-@knowledgeAvg)*16+100)/STDEV(V) from dbo.Score1
      

  4.   

      (select V from Score1 where ID=@i-@knowledgeAvg)*16+100/SELECT STDEV(V) from dbo.Score1
    --这是一个算术结果,你要赋值个哪个变量?Set=.....