加个 distinct关键字,在select 关键字后面。不过不能象你这么写。等分步写。第一步先只检索用户名。
select  distinct 用户名 from tablename where condition.
然后再根据查询到的用户名查询其他的。

解决方案 »

  1.   

    select 用户名,身份证号,count(*) from tablename group by 用户名
      

  2.   

    Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC Microsoft Access 驱动程序] 试图执行的查询中不包含作为合计函数一部分的特定表达式 'author_id' 
    ---------------------------------------------
    怎么有上面的错误?如果要用group by 是不是应该先排序呀。好像我用group by 经常说有什么不包含合计函数。 
     
     
      

  3.   

    select 用户名,身份代号,count(*)  group by 用户名,身份代号 order by count(*)  就可以了但是你原来的基本表的设计有问题,该表不符合第二范式(2BNF)
      

  4.   

    原来的基本表的设计有问题,该表不符合第二范式(2BNF)
    什么意思呀 ?说清一点好么。。…………——^_^^_^
      

  5.   

    不好意思  说错了  是3BNF
    因为你这里
    用户名可以决定身份代号
    身份代号也可以决定用户名
    不管选那个为关键字,都会产生主属性函数依赖于非主属性
    函数依赖是一个术语,你去看看DB理论的书吧,一时想不清楚地
      

  6.   

    可以选出来的,只是你这样子储存数据,会有一些数据重复,当你更改数据的时候就麻烦一点!
    主  题:  怎样刷选分组字段,要求统计相同类别的个数。 
    作  者:  pzou ()  
    等  级:    
    信 誉 值:  100 
    所属论坛:  Visual C++ 
    问题点数:  20 
    回复次数:  3 
    发表时间:  2002-3-23 16:15:22 
       
     
       
    有一个表A:(表为access)ID    用户名    身份代号    著作题目102   张三       302         《爱河》103   李四       501         《小芳》104   张三       302         《爱河-续》105   李四       501         《随笔》106   张三       302         《经济学》 
    上面张三的身份证号码被存储到了几条记录上面,当更改的时候就要逐条更改了
      

  7.   

    你应该拆成两个表
    R1:  用户名    身份代号#
    R2:  身份代号#  著作题目带#为主建显示时用select * from R1 jion R2 on R1.身份代号 = R2.身份代号