SQL> select decode(grouping_id(region, no, name,memo), 0, no, 7, '小计', 15, '总计') no,
  2         decode(grouping_id(region, no, name,memo), 7, nvl(region,'未知行业'), 15, '所有行业', na
me) name,
  3         sum(content),
  4         memo
  5  from   t
  6  group  by rollup(region, no, name,memo)
  7  having grouping_id(region, no, name,memo) in (0, 7, 15);NO   NAME                 SUM(CONTENT) MEMO
---- -------------------- ------------ --------------------
007  钢铁1                          10 g
008                                 20 h
小计 未知行业                       30
001  电子公司1                      11 a
002  电子公司2                      22 b
005  电厂3                          55 e
小计 电子                           88
003  化工厂1                        33 c
004  化工厂2                        44 d
006  化工厂3                        66 f
小计 化工                          143NO   NAME                 SUM(CONTENT) MEMO
---- -------------------- ------------ --------------------
总计 所有行业                      261已选择12行。

解决方案 »

  1.   

    谢谢楼上的大哥了,
    有没有办法能显示成如下格式呢?
              NO       NAME   SUM(CONTENT) MEMO
    ---- -------------------- ------------ --------------------
    1 007 钢铁1 77 g
    2 008 88 h
    小计 未知行业          165
    1 001 电厂1 11 a
    2 002 电厂2 22 b
    3 005 电厂3 55 e
    小计 电子          88
    1 003 化工厂1 33 c
    2 004 化工厂2 44 d
    3 006 化工厂3 66 f
    小计 化工          143
    总计 所有行业          396就是在显示的结果的时候在前面加上一列
      

  2.   

    SQL> select decode(grouping_id(region, ids, no, name,memo), 0, to_char(ids), 15, '小计', 31, '总计')
     ids,
      2         no,
      3         decode(grouping_id(region, ids, no, name,memo), 15, nvl(region,'未知行业'), 31, '所有行
    业', name) name,
      4         sum(content),
      5         memo
      6  from   (select t.*,row_number() over(partition by region order by no) ids from t)
      7  group  by rollup(region, ids, no, name,memo)
      8  having grouping_id(region, ids, no, name,memo) in (0, 15, 31); IDS                  NO  NAME                 SUM(CONTENT) MEMO
    -------------------- --- -------------------- ------------ --------------------
    1                    007 钢铁1                          10 g
    2                    008                                20 h
    小计                     未知行业                       30
    1                    001 电子公司1                      11 a
    2                    002 电子公司2                      22 b
    3                    005 电厂3                          55 e
    小计                     电子                           88
    1                    003 化工厂1                        33 c
    2                    004 化工厂2                        44 d
    3                    006 化工厂3                        66 f
    小计                     化工                          143
    总计                     所有行业                      261已选择12行。