select max(UserID) FROM dbo.MyUser
我用的sqlserver2000,在java程序里执行上面这个简单的sql时,报如下错:列 'dbo.MyUser.ComCode' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。找了一下午毛病,也没找到问题所在,ComCode是这个表的另一列,但是我这个sql也没用到ComCode啊,和他没什么关系啊,怎么会报着个错?看了很多帖子,说的都是要用到group by分组的,可是我不需要分组,只是查出MyUser表里UserID的最大值,大家帮帮忙啊,急死了...

解决方案 »

  1.   

    不至于吧,我用mysql 写那语句可以通过啊
      

  2.   

    换个方法也许殊途同归!
    select top(1) from MyUser order by userId desc;
      

  3.   

    sql 没有问题会不会是你执行的时候 选错了
      

  4.   

    select top 1 (id)  from user order by id desc 看下
      

  5.   

    select max(UserID) FROM dbo.MyUser  GROUP BY(UserID)
      

  6.   

    select max(UserID) FROM dbo.MyUser  GROUP BY(UserID)
    也没有多大问题
      

  7.   

    select ComCode,max(UserID) FROM dbo.MyUser GROUP BY(UserID)
    select ComCode,max(UserID) FROM dbo.MyUser
    这样的才报你那样的错误,看看是不是由你这条sql产生的
      

  8.   

    再问下,你执行这条sql用什么方式
      

  9.   


    与你的createstatement中的参数有关,使用下面的参数会报那样的错误,不用参数则不会报错!
    cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).executeQuery(sql)
      

  10.   

    我今天也碰到了类似的问题,有时候真是很痛苦。我的在MySQL、access都没事,就是在sql2000里得加那个group by(***) .你说说气人吧 ,程序就是欠调试!