日期:2014-05-18  浏览次数:20721 次

MAX语名没问题怎么会报错,,高手...来啊.....................................
部份代码如下
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();      
String       url= "jdbc:microsoft:sqlserver://ltd:1433;DatabaseName=gh ";      
String       user= "sa ";      
String       password= "qwertyui ";
Connection       conn=DriverManager.getConnection(url,user,password);      
Statement       stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
String   sql;
sql= "select     max(username)   from   mm_message ";
ResultSet   rs=stmt.executeQuery(sql);
出错:
javax.servlet.ServletException:   [Microsoft][SQLServer   2000   Driver   for   JDBC][SQLServer]列   'mm_message.shbz '   在选择列表中无效,因为该列未包含在聚合函数中,并且没有   GROUP   BY   子句。

sql= "select     max(je)   from   mm_message ";
换成
sql= "select     je   from   mm_message ";
没事,问题在什么地方啊??

------解决方案--------------------
那当然啊,max是单行函数,这是基本的sql语法,回去找书看看吧~~~
------解决方案--------------------
select * from mm_message where je = (select max(je) from mm_message)
------解决方案--------------------
这个是你的sql语句的语法有错误。
你可以先将你的sql语句,在sql server的客户端执行通过后,再写入java文件。
------解决方案--------------------
上面写的很清楚了 这样改看看select max(je) from mm_message group by je
或者 select max(distinct je) from mm_message group by je