数据库内容(SQL2000)
leibie1  leibie2 leibie3 xinghao  a1  a2  a3
a         b        c       d      10  20  30
a         b        e       f      20  30  10
......
现在我想使用聚合函数
1、
select leibie1,leibie2,leibie3,xinghao,sum(a1),sum(a2),sum(a3) group by leibie2
当然以上语句是错误的。(但是我的想法是把查询的内容放在Leibie2组里,但我又能显示leibie1,leibie3,xinghao的信息)
2、
如果我使用select leibie1,leibie2,leibie3,xinghao,sum(a1),sum(a2),sum(a3) group by leibie2,leibie1,leibie3,xinghao
当然以上语句是没有错语,但是查询的内容不是我想要的。
3、
如果我再使用select max(leibie1),leibie2,max(leibie3),max(xinghao),sum(a1),sum(a2),sum(a3) group by leibie2
当然以上语句是没有错语,也能达到我的意思,但是我使用MAX是没有意思,因为我又不是想查它的最大值。请各位大侠指点,有什么好的办法。
我想要的是select leibie1,leibie2,leibie3,xinghao,sum(a1),sum(a2),sum(a3) group by leibie2

解决方案 »

  1.   

    不好意思忘了加表..
    数据库内容(SQL2000) 
    leibie1  leibie2 leibie3 xinghao  a1  a2  a3 
    a        b        c      d      10  20  30 
    a        b        e      f      20  30  10 
    ...... 
    现在我想使用聚合函数 
    1、 
    select leibie1,leibie2,leibie3,xinghao,sum(a1),sum(a2),sum(a3) from [表] group by leibie2 
    当然以上语句是错误的。(但是我的想法是把查询的内容放在Leibie2组里,但我又能显示leibie1,leibie3,xinghao的信息) 
    2、 
    如果我使用select leibie1,leibie2,leibie3,xinghao,sum(a1),sum(a2),sum(a3) from [表] group by leibie2,leibie1,leibie3,xinghao 
    当然以上语句是没有错语,但是查询的内容不是我想要的。 
    3、 
    如果我再使用select max(leibie1),leibie2,max(leibie3),max(xinghao),sum(a1),sum(a2),sum(a3)from [表] group by leibie2 
    当然以上语句是没有错语,也能达到我的意思,但是我使用MAX是没有意思,因为我又不是想查它的最大值。 请各位大侠指点,有什么好的办法。 
    我想要的是select leibie1,leibie2,leibie3,xinghao,sum(a1),sum(a2),sum(a3)from [表] group by leibie2 
      

  2.   

    1.
    select leibie1,a.leibie2,leibie3,xinghao,a1,s2,s3
    from tb a,
        (select leibie2,sum(a1) as a1,sum(a2) as s2,sum(a3) as s3 from tb group by leibie2) b
    where a.leibie2=b.leibie2