下面这些数据只是我举例说明, 实际是从数据库中读出来的
select t.product_type,t.product_sort,t.sale_date,t.product_qty from sales t order by t.product_type,t.product_sort,t.sale_date电脑 戴尔 2012-01 210 10
电脑 联想 2012-02 180 7
电脑 联想 2012-02 190 9
手机 诺基亚 2012-01 100 6
手机 诺基亚 2012-02 110 12
手机 三星 2012-01 130 17现在要统计成这样的形式大类 小类    销售数(2012-01) 维修数(2012-01) 销售数(2012-02) 维修数(2012-02) 总销售数 总维修数  
 电脑  戴尔      210             10                                               210   10
 电脑  联想                                           370           16            370   16                    
 电脑  合计     210               10                   370           16            480  26
 手机  诺基亚   100               6                      110         12            210   18
 手机  三星     130               17                                               130    17
 手机   合计    230               23                      110        12             340    35
 总计           440                33                        480      28            920    61

解决方案 »

  1.   

    把具体的表结构贴出来吧。没结构,别人也只是给个思路,思路的话,相信你也想了很多,只是实现不了。有些东西,不可能就用个select 或是过程就能搞定的。不行就用临时表啦。
      

  2.   

    select t.product_type,t.product_sort,
    sum(decode(t.sale_date,'2012-01',t.product_qty,0))m1,
    sum(decode(t.sale_date,'2012-02',t.product_qty,0))m2,
    sum(product_qty) m3
    from sales t 
    group by grouping sets((t.product_type,t.product_sort),(t.product_type),()) 哪个是销售数哪个是维修数都不知道。
      

  3.   


    create table sales(product_type varchar2(10),product_sort varchar2(10),sale_date varchar2(7),product_qty number(10),product_wx number(10));insert into sales values ('电脑','戴尔','2012-01',210,10);
    insert into sales values ('电脑','联想','2012-02',180,7);
    insert into sales values ('电脑','联想','2012-02',190,9);
    insert into sales values ('手机','诺基亚','2012-01',100,6);
    insert into sales values ('手机','诺基亚','2012-02',110,12);
    insert into sales values ('手机','三星','2012-01',130,17);
     
    select product_type 大类, 
           product_sort 小类,
           sum(decode(sale_date,'2012-01',product_qty,0)) x1,
           sum(decode(sale_date,'2012-01',product_wx,0)) w1,
           sum(decode(sale_date,'2012-02',product_qty,0)) x2,
           sum(decode(sale_date,'2012-02',product_wx,0)) w2,
           sum(product_qty) h1,
           sum(product_wx) h2
    from sales 
    group by rollup (product_type,product_sort)   大类   小类    x1    w1    x2    w2    h1    h2
    ----------------------------------------------------------------------
    1 电脑 戴尔 210 10 0 0 210 10
    2 电脑 联想 0 0 370 16 370 16
    3 电脑 210 10 370 16 580 26
    4 手机 三星 130 17 0 0 130 17
    5 手机 诺基亚 100 6 110 12 210 18
    6 手机 230 23 110 12 340 35
    7 440 33 480 28 920 61