Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 使用分析函数实现小计合计

select grouping(vsaltype) as sq,                         vsaltype || "小计计" vsaltype,                         sum(amount) as amount,                                   "" vvin,                                    "" VPROPERTYWH,                               "" VPROPERTYWHDESC                              fromSPTW90_INVENTORY_NCS_TMP                               group by rollup(vsaltype)得到结果为::分析结论:Grouping(上卷字段)两种情况:SQ为0情况:只是按照vsaltype进行group bySQ为1情况:把小计情况进行一次汇总,即别文写的 group by  rollup(A,B,C)的流程是group by (A,B,C)->group by (A,B) ->group by (A)-> 全表,本例只是执行后两句  select -1 as sq,                 vsaltype,                 amount,                 vvin,               VPROPERTYWH,                 VPROPERTYWHDESC                    from SPTW90_INVENTORY_NCS_TMP得到结果为:
分析结论:得到所有明细数据,并赋一个新的虚拟字段sq 并设sq为-1这样则:select sq, vsaltype, amount, vvin, VPROPERTYWH,VPROPERTYWHDESC from (select sq, vsaltype, amount, vvin, VPROPERTYWH, VPROPERTYWHDESC         from (select grouping(vsaltype) as sq,                       vsaltype || "小计计" vsaltype,                       sum(amount) as amount,                       "" vvin,                       "" VPROPERTYWH,                       "" VPROPERTYWHDESC                  from SPTW90_INVENTORY_NCS_TMP                 group by rollup(vsaltype)                union all                select -1 as sq,                       vsaltype,                       amount,                       vvin,                       VPROPERTYWH,                       VPROPERTYWHDESC                  from SPTW90_INVENTORY_NCS_TMP                 where 1 = 1) g        where g.sq <> 1        order by vsaltype, sq)把sq为0,1行数与sq为-1行数进行union all 在where条件进行限定,取出sq非1的数据即sq<>1So,取最终合计的话只需取出sq =1的情况最终模型应该是这种效果(从Oracle中导出的Excel):Oracle ADF:实现联合主键校验的方法Oracle ADF 双击行事件相关资讯      Oracle基础教程 
  • Oracle块编程返回结果集详解  (11/10/2013 10:45:58)
  • Oracle基础教程之设置系统全局区  (08/22/2013 14:24:00)
  • Oracle基础教程知识点总结  (06/18/2013 07:43:32)
  • Oracle基础教程之tkprof程序详解  (10/22/2013 11:49:50)
  • Oracle基础教程之sqlplus汉字乱码  (07/18/2013 16:30:00)
  • Oracle 管理之 Linux 网络基础  (02/16/2013 18:37:35)
本文评论 查看全部评论 (0)
表情: 姓名: 字数