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)