sql = "select sum(Score) a,Period,AindicatorsClass.indicatorsClass,AindicatorsClass.ID from Aresult "
            +"left join AindicatorsClass on Aresult.indicatorsClass=AindicatorsClass.ID"
                            + "group by Period,AindicatorsClass.indicatorsClass,AindicatorsClass.ID"
                            + "having Period ='"+myyear+"'"; 错误提示:[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在关键字 'by' 附近有语法错误。 
希望高手指点,在查询分析器中运行是没有问题的,放到dreamweaver中运行后,就出现了错误。

解决方案 »

  1.   

    sql = "select sum(Score) a,Period,AindicatorsClass.indicatorsClass,AindicatorsClass.ID from Aresult "
    +"left join AindicatorsClass on Aresult.indicatorsClass=AindicatorsClass.ID"
     ---空格
      + "   group by Period,AindicatorsClass.indicatorsClass,AindicatorsClass.ID"
      + "having Period ='"+myyear+"'";  
      

  2.   

    sql = "select sum(Score) a,Period,AindicatorsClass.indicatorsClass,AindicatorsClass.ID from Aresult "
    +"left join AindicatorsClass on Aresult.indicatorsClass=AindicatorsClass.ID"
      + "group by Period,AindicatorsClass.indicatorsClass,AindicatorsClass.ID"
      + "having Period ='"+myyear+"'"; 1# Score、Period 没指定!
    2# 可以写成sql = "select sum(Score) a,Period,AindicatorsClass.indicatorsClass,AindicatorsClass.ID from Aresult "
    +"left join AindicatorsClass on Aresult.indicatorsClass=AindicatorsClass.ID"
      + "where Period ='"+myyear+"'"
      + "group by Period,AindicatorsClass.indicatorsClass,AindicatorsClass.ID"; 
      

  3.   

    在 group 前面加一空格就行.
      

  4.   


    在ASP进行字符串连接时,你不给它空格它不会自动产生,这样按你写的,就会成:
    on Aresult.indicatorsClass=AindicatorsClass.IDgroup by Period,AindicatorsClass
    这样在 by 前会产生语法错误.
      

  5.   

    + "group by Period,AindicatorsClass.indicatorsClass,AindicatorsClass.ID"
      + "having Period ='"+myyear+"'"; having 后面的应该使用统计函数 如sum,count,avg
    所以你的Period ='"+myyear+"'"; 应该放在where中sql = "select sum(Score) a,Period,AindicatorsClass.indicatorsClass,AindicatorsClass.ID from Aresult "
    +"left join AindicatorsClass on Aresult.indicatorsClass=AindicatorsClass.ID"
    + "  where  Period ='"+myyear+"'";
      + "  group by Period,AindicatorsClass.indicatorsClass,AindicatorsClass.ID"
       
      

  6.   

    写连接符 要注意空格 ,可以PRINT一下就可以看出来了