如题,希望能对查询的记录集的每一列进行一次合计,然后把合计也作为一条记录加在后面
比如
select a,b,c from tbl where ....
查询结果如下
      a    b    c
     1    2    3
     1    2    3    
     0    1    2   
希望是这样的
     a    b    c
     1    2    3
     1    2    3    
     0    1    2   
sum  2    5    8

解决方案 »

  1.   

    select '',a,b,c from t
    union all
    select 'sum',sum(a),sum(b),sum(c) from t
      

  2.   

    select id,ID2,id3 from test1
    union
    select sum(id),sum(id2),sum(id3) from test1
      

  3.   

    谢谢,
    但是select a,b,c from tbl where .... 
    关键还有条件,而且条件语句中有强联等等,非常浪费查询时间的条件
    如果
    select '',a,b,c from t where .... 
    union all 
    select 'sum',sum(a),sum(b),sum(c) from t where .... 
    这样的话会使查询时间*2,使得原来很慢的查询更慢
    我的意思是能不能只查询一次记录集,然后只做一次加法运算就可以了,而不是全部再查一遍
      

  4.   

    画面有翻页吗,没有的话在页面做加法
    另外,做成列不行吗
    select a,b,c, 
           sum(a) over() as sum_a,..
    from tbl 
      

  5.   

    哎,还是不行,我试着将这个合计金额放在c++里面处理,但是发现要进行共通化很难,所以觉得还是sql提供解决方案比较好,大家能不能帮我再看看
      

  6.   

    不建议放在数据库处理。但要实现的话,也是有的。我的是个简单的例子。
    select sum(a),sum(b),sum(c) from (select rownum r,a.* from test_mulcol a) a group by rollup(a.r);
      

  7.   

    谢谢,楼上的方法过会儿去试试,我现在用_RecordSetPtr在C++中处理了,代码好长