select ... from a,b,c,d,e where ....
union 
select sum(lie2),sum(lie3) from a,b,c,d,e where ...
或者用rollup,cube函数

解决方案 »

  1.   

    同意cenlmmx,注意数据对齐,最后的汇总行上对应的位置上要有对应的数据,例如
    union 
    select '',sum(lie2),sum(lie3) from a,b,c,d,e where ...
      

  2.   

    下面的语句检索出需要进行统计的数据集(包含部门名称dname、职位job、工资sal):
    SQL> select dept.dname,emp.job,sal from emp,dept
    2  where emp.deptno=dept.deptno;DNAME          JOB              SAL
    -------------- ---------   ----------
    RESEARCH       CLERK            800
    SALES          SALESMAN        1600
    SALES          SALESMAN        1250
    RESEARCH       MANAGER         2975
    SALES          SALESMAN        1250
    SALES          MANAGER         2850
    ACCOUNTING     MANAGER         2450
    ACCOUNTING     PRESIDENT       5000
    SALES          SALESMAN        1500
    SALES          CLERK            950
    RESEARCH       ANALYST         3000
    ACCOUNTING     CLERK           1300已选择12行。下面,我们就根据部门名称以及职位进行汇总,并为每个部门生成’小计’,最后生成’合计’。SQL> select decode(grouping(dept.dname),1,'合计:',dept.dname) dname,
      2  decode(grouping(emp.job)+grouping(dept.dname),1,'小计:',emp.job) job,sum(sal) sum_sal from emp,dept
      3  where emp.deptno=dept.deptno group by rollup(dept.dname,emp.job);DNAME          JOB         SUM_SAL
    --------------  ---------  ----------
    ACCOUNTING     CLERK           1300
    ACCOUNTING     MANAGER         2450
    ACCOUNTING     PRESIDENT       5000
    ACCOUNTING     小计:           8750
    RESEARCH       ANALYST         3000
    RESEARCH       CLERK            800
    RESEARCH       MANAGER         2975
    RESEARCH       小计:           6775
    SALES          CLERK            950
    SALES          MANAGER         2850
    SALES          SALESMAN        5600
    SALES          小计:           9400
    合计:                         24925已选择13行。
    SQL>
      

  3.   

    还有一个问题就是加上 order by 以后顺序就乱掉了
      

  4.   

    分开order by,什么地方会乱掉?
      

  5.   

    order by XXX (desc) ; “合计”位置不一定在第一个或最后一个