分类汇总(复杂一点)

1.按照科目分组做小计,客户分组做总计 id-科目,company-客户

   客户包含多个科目

 e.g:

 select * from (select * from (select mater.ob as ob,mater.id as id,mater.num as num,mater.company as company 

 from
 (select id||company as ob,id,num,company from (
       select  'a' id ,10 as num,'A' as company
       union all
       select  'a' id ,20 as num,'A' as company
       union all
       select  'b' id ,30 as num,'A' as company
       union all
       select  'b' id ,40 as num,'B' as company
       union all
       select  'c' id ,40 as num,'B' as company
       union all
      select  'c' id ,40 as num,'B' as company
     ))mater
union all
  select * from (select * from (select (id||company||'_') ob,null as id,sum(num) as num,company from (
      select  'a' id ,10 as num,'A' as company
      union all
      select  'a' id ,20 as num,'A' as company
      union all
      select  'b' id ,30 as num,'A' as company
      union all
      select  'b' id ,40 as num,'B' as company
      union all
      select  'c' id ,40 as num,'B' as company
      union all
      select  'c' id ,40 as num,'B' as company
  ) group by company,id) order by company) order by ob) groupby

union all
  select * from (select null as ob,company as id,sum(res.num) as num,company||'_' as company from (
   select (id||company||'_') ob,id,sum(num) as num,company from (
     select  'a' id ,10 as num,'A' as company
     union all
     select  'a' id ,20 as num,'A' as company
     union all
     select  'b' id ,30 as num,'A' as company
     union all
     select  'b' id ,40 as num,'B' as company
     union all
     select  'c' id ,40 as num,'B' as company
     union all
   select  'c' id ,40 as num,'B' as company
) group by company,id) res group by res.company) aa) order by company,ob

 

效果:

aA             a            20            A
aA             a            10            A
aA_                         30            A
bA             b            30            A
bA_                         30            A
                 A            60            A_
bB             b            40            B
bB_                         40            B
cB              c            40            B
cB              c            40            B
cB_                          80            B
                 B            120          B_

-----上帝啊,,,头都大了...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值