这是一个查询结果,我想在这个查询结果里再加入一条记录,就是求PM为总计的和,怎么解决,在线苦等    JGMC                 JCMC         PM         SB        HJ         RK
1 白银市靖远县地方税务局 省级行业统筹 总计          867174         867174         0
2 白银市靖远县地方税务局 省级行业统筹 基本养老保险费 867174         867174         0
3 白银市靖远县地方税务局 县(区)级 总计          1654710.54 1623038.42 0
4 白银市靖远县地方税务局 县(区)级 失业保险费 69848.86 69848.86 0
5 白银市靖远县地方税务局 县(区)级 生育保险费 2998.31         2998.31         0
6 白银市靖远县地方税务局 县(区)级 基本医疗保险费 129025.35 123185.35 0
7 白银市靖远县地方税务局 县(区)级 基本养老保险费 1326690.69 1300858.57 0
8 白银市靖远县地方税务局 县(区)级 工伤保险费 100798.47 100798.47 0
9 白银市靖远县地方税务局 县(区)级 大病          25348.86         25348.86 0

解决方案 »

  1.   

    原sql再用union,
    用emp表举个例子:
    SQL> select empno, ename, sal from emp
      2  union
      3  select null empno, null ename, max(sal) sal from emp;     EMPNO ENAME             SAL
    ---------- ---------- ----------
          7369 SMITH             800
          7499 ALLEN            1600
          7521 WARD             1250
          7566 JONES            2975
          7654 MARTIN           1250
          7698 BLAKE            2850
          7782 CLARK            2450
          7788 SCOTT            3000
          7839 KING             5000
          7844 TURNER           1500
          7876 ADAMS            1100     EMPNO ENAME             SAL
    ---------- ---------- ----------
          7900 JAMES             950
          7902 FORD             3000
          7934 MILLER           1300
                                500015 rows selected.
      

  2.   

    单独查询PM 合计        用UNION ALL
      

  3.   

    上面的,应该用sum, 错写成了max
      

  4.   

    用union all 连接结果集select JGMC,JCMC,PM,SB,HJ,RK 
    from tb
    union all 
    select '总计' JGMC,null,sum(PM) PM,null,null,null 
    from tb;
      

  5.   

    LZ可以研究一下ROOLUP的用法,因为你的需求描述的非常不清晰,所以就只好给你贴个例子了SQL> SELECT * FROM T_VALUE;NAME              MON     SALARY
    ---------- ---------- ----------
    A                   2        100
    A                   3        200
    B                   4        200SQL> SELECT DECODE(GROUPING(NAME),1,'总计',name) name ,SUM(SALARY) FROM T_VALUE
      2  GROUP BY rollup(NAME);NAME       SUM(SALARY)
    ---------- -----------
    A                  300
    B                  200
    总计               500SQL> 
      

  6.   

    rollup 是oracle9以后引入的,如果LZ用oracle8的话,还是要老老实实的union 题外话:itpub中,提问规则里面明确指出,要说明说在oracle的版本。
      

  7.   

    union all
    select "总计" as JGMC ,   "总计" as JCMC, sum(pm)as pm
      

  8.   

    这个用union  all 很好解决的 
    只要保持 列数相等,每列数据类型的一致性 或者兼容就ok啦 
    union 和union all 区别
    union 会去掉重复数据以及会重新排序 union all 不会
    应此union all的效率高些
      

  9.   

    union all
    加上你要的那行数据就行了。
      

  10.   

    ROLLUP需要用到GROUP BY,如果列多的话,会写法复杂