select * from student
我还需要统计一下id的个数
select *,count(id) from student
这样写就报错:选择列表中的列 'dbo.student.id' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
应该怎么解决

解决方案 »

  1.   

    select count(id) from student
      

  2.   

    select id,count(id) from student group by id
      

  3.   

    select id,count(*) from student group by id
      

  4.   

    可能是没有id这个列名,应该这样写
    select count(*) from student
      

  5.   

    select count(id) from student
      

  6.   

    student表内所有字段都要显示的,还要再加一个count(id)的字段
      

  7.   

    select id,,count(id) as c from student group by id, 前面select 的字段全列出  group by后必须也全部写出
      

  8.   

    比如 select id,namea,count(id) as c from student group by id, namea
      

  9.   

    count(id) 出现聚合函数 就一定要在后面出现group by否则就是全表统计
      

  10.   


    --我还需要统计一下id的个数
    如果每条单据都有ID的话~! 
    select count(1) from student
      

  11.   

    试出来了,自己公布答案了。
    SELECT *, (SELECT COUNT(id) FROM student WHERE name='XXX') aa FROM student WHERE name='XXX'
      

  12.   

    你这个只能根据name='XXX'列出一个
      

  13.   

    你能把所有的name 全列出来嘛
      

  14.   

    这样可以实现
    select ROW_NUMBER() OVER (ORDER BY 姓名) as id,* from student
      

  15.   

    这样可以实现
    select ROW_NUMBER() OVER (ORDER BY 姓名) as id,* from JC_WL
      

  16.   

    你能把所有的name 全列出来嘛
      

  17.   

    这样可以实现
    select ROW_NUMBER() OVER (ORDER BY 姓名) as id,* from student
      

  18.   


    where 条件不加,就是这张表里所有的name啦
      

  19.   


    LZ 我真对你无语了 你去用你写的SQL吧。。
      

  20.   

    如果后面没有WHERE条件子句,那么select * from student和select count(*) from student根本是完全不一样的两个语句,前者是列出student表中所有记录,后者是计算出student表一共有几条记录,怎么能写成select *,count(id) from student这样呢?
      

  21.   

    只是为了统计数据可以这样。[/code]
    [code=SQL]
    select * from student
    union all
    select 'id总计',count(id) from student