select e.id,e.buildDate,e.machinetype,e.code,e.gps,sum(e.syArea),count(a.name),from table a, table e
where a.id = b.id 
group by e.id,e.buildDate,e.machinetype,e.code,e.gpsa.id 是table a 的主键
如果我group by 加了e.id的话 就不是我要的结果
去掉e.id就是我要的结果 因为id总是不一样的啊 sql 语句不写e.id的话 
我修改 删除还是根据id 来的啊 怎么办???

解决方案 »

  1.   

    select e.buildDate,e.machinetype,e.code,e.gps,sum(e.syArea),count(a.name), from table a, table e 
    where a.id = b.id 
    group by e.buildDate,e.machinetype,e.code,e.gps ???
      

  2.   

    那就直接把Group by ID去掉好了
      

  3.   

    建设时间  城市    姓名  机电井类型 项目编码 GPS信息 受益面积(亩) 受益户数 
    2009     北京    小小   大机电     11111   2222    200
    2009     上海    大大   小机电     11111   2222    300
    2009     北京    阿猫   大机电     54545   5446    220
    这是我数据库存的数据然后要的结果是这样:
    建设时间  城市    机电井类型 项目编码 GPS信息 受益面积(亩) 受益户数
    2009     北京     大机电    11111    2222   420          2
    2009     上海     小机电    54545    5446   300          1-----------------------------
    这样大家能明白吗??我现在头都大了 表达欠佳啊 抱歉大家
      

  4.   

    select 建设时间,城市,机电井类型,项目编码,GPS信息,受益面积(亩) = sum(受益面积(亩)),受益户数 = sum(*)
    from 表
    group by 建设时间,城市,机电井类型,项目编码,GPS信息
      

  5.   

    还有点不明白,结果中“小机电”的项目编码和GPS信息怎么来的?什么规律?
      

  6.   

    你这结果好象有问题呢。
    如果是下面的数据就是你想要的结果create table A(建设时间 varchar(20),城市 varchar(10),姓名 varchar(10),机电井类型  varchar(10),项目编码 varchar(10),GPS信息 varchar(10),受益面积 numeric(10,3))
    go
    insert into A
    select '2009','北京','小小','大机电','11111','2222',200
    union
    select '2009','上海','大大','小机电','54545','5446',300 
    union
    select '2009','北京','阿猫','大机电','11111','2222',220 
    go
    select 建设时间,城市,机电井类型,项目编码,GPS信息,受益面积 = sum(受益面积),受益户数 = count(1) 
    from A 
    group by 建设时间,城市,机电井类型,项目编码,GPS信息
    go
    drop table A---结果
    2009 北京 大机电 11111 2222 420.000 2
    2009 上海 小机电 54545 5446 300.000 1
      

  7.   

    结果有问题 ??
    不会吧受益户数 是根据 机电来判断的 比如小小 和阿猫都对应着大机电 所以受益户数为2对于gps这些 不用管其实winstonbonaparte 他写的是我要的
    但是还有个主键id 忘记加在里面了 
    你尝试着group by id .....就不一样了
    (因为id我要做后面的修改 删除需要 )