create table tb(depart char(3),name varchar(100),numb int)
insert into tb select  '001','dai',20
union all select '002','dai',20
union all select '003','dai',20
union all select '004','wang',20
union all select '005','wang',20
union all select '006','deng',20
select * from tb
select  distinct name ,sum(numb) as sum_numb from tb group by name
drop table tb

解决方案 »

  1.   

    create table tb(depart char(3),name varchar(100),numb int)
    insert into tb select  '001','dai',20
    union all select '001','dai',20
    union all select '003','dai',20
    union all select '005','wang',20
    union all select '005','wang',20
    union all select '006','deng',20
    select * from tb
    select  distinct name ,depart,sum(numb) as sum_numb from tb group by name,depart
    drop table tb
      

  2.   

    你的depart 字段和name 字段要满足一定的关系才好!例如:像上面的同名但是不同部门的就不会算在一块!(相信这个应该就是你要的了)如果要算到一起,就用第一种方法,可以不要depart字段
      

  3.   

    distinct可以不要select  name ,depart,sum(numb) as sum_numb from tb group by name,depart
      

  4.   

    你本身的逻辑就存在一定的问题,你可以参考一下compute子句,或许会有解决方案
      

  5.   

    --distinct不能只对某个字段去重复select depart=min(depart),name,sum(numb) from test group by name
      

  6.   

    如果depart 和name一一对应select depart,name,sum(numb) from test group by depart,name如果depart 和name不是一一对应
    select depart=min(depart),name,sum(numb) from test group by name
      

  7.   

    麻烦,各位给我的方法在sql里面都很好的,
    但是我的数据库是access,我把这个sql放asp里面就不行了!
    奇怪?
      

  8.   

    select depart,name,sum(numb) from test group by depart,name
    这个在asp里面可以
    select depart=min(depart),name,sum(numb) from test group by name
    但是这个就不行了!