oracle数据库实现汇总报表的方法
--------备忘录
在常用的汇总报表中,会出现通过某些条件实现分组后,对数量金额进行小计以及总计
可以使用group by rollup(col1,col2,....coln) 来实现分组统计
若要对总计,小计等汉字的显示进行控制,可以使用case()函数
select
tp.tp_xmbh as xmid,
tp.tp_ccbh as showid,
(case when tp.tp_xmbh is null then null else (select wp.name from ZYPWT2.PM_PROJECT_INFO wp where STATUS=1 and PI_CATEGORY='2101'and id=tp.tp_xmbh) end) as col1,
(case when tp.tp_xmbh is null then null else (select to_char(wp.pi_show_start_time,'yyyy-mm-dd')|| '-' ||to_char(wp.pi_show_end_time,'yyyy-mm-dd') from ZYPWT2.PM_PROJECT_INFO wp where STATUS=1 and PI_CATEGORY='2101'and id=tp.tp_xmbh) end) as col2,
(case when tp.tp_ccbh is null then null else (select ws.name from zypwt2.pm_show_info ws where ws.status=1 and ws.id= tp.tp_ccbh) end) as col3,
(case when tp.tp_ccbh is null then null else (select to_char(ws.si_show_start_time,'yyyy-mm-dd hh24:mi') from zypwt2.pm_show_info ws where ws.status=1 and ws.id= tp.tp_ccbh) end ) as col4,
(case when tp.tp_ccbh is null then null else (select ven.name from zypwt2.vm_venues_info ven where ven.status='1' and ven.id=(select ws.si_venue_id from zypwt2.pm_show_info ws where ws.status=1 and ws.id=tp.tp_ccbh)) end) as col5,
(case
when tp.tp_pjid is null and tp.tp_ccbh is null and tp.tp_xmbh is not null then '项目总计'
when tp.tp_pjid is null and tp.tp_ccbh is not null then '场次小计'
when tp.tp_pjid is null and tp.tp_ccbh is null and tp.tp_xmbh is null then '总计'
else to_char((select pri.pli_price from zypwt2.pm_price_level_info pri where pri.id=tp.tp_pjid and status='1')) end
) as col6,
sum(tp.tp_sqzs) as col7,
'¥'||sum(tp.tp_sqje) as col8,
sum(tp.tp_tpzs) as col9,
'¥'||sum(tp.tp_tpje) as col10
from crm_dd_tpxx tp
where tp.tp_khbh='decc16ad7f6747b3bf24e5ee379c6b94' and zt='1' group by rollup(tp.tp_xmbh,tp.tp_ccbh,tp.tp_pjid) order by tp.tp_xmbh,tp.tp_ccbh
oracle数据库实现汇总报表的方法相关推荐
- oracle 数据库问题,ORACLE数据库常见问题汇总,oracle常见问题汇总
ORACLE数据库常见问题汇总,oracle常见问题汇总 提交事务的时候提示(数据库被一个用户锁住的解决方法) select object_id,session_id,locked_mode from ...
- Navicat Premium无法连上ORACLE数据库的几种问题解决方法
Navicat Premium无法连上ORACLE数据库的几种问题解决方法 参考文章: (1)Navicat Premium无法连上ORACLE数据库的几种问题解决方法 (2)https://www. ...
- oracle自动售票服务器,一种基于Oracle数据库客户端的业务自动处理方法与流程
技术领域 本发明涉及计算机技术领域,具体地说是一种实用性强.基于Oracle数据库客户端的业务自动处理方法. 背景技术: 在实现预约挂号的移动应用中,由于医院业务系统处理缺失自动取消预约功能,经常需要 ...
- Oracle数据库备份与恢复的三种方法
Oracle数据库备份与恢复的三种方法 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份.导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一. 导出/ ...
- 资源放送丨《Oracle数据库之Object的Access方法和结合方法》PPT视频
前段时间,墨天轮邀请Oracle优化方面的资深专家 陈晓辉 老师分享了<Oracle数据库之Object的Access方法和结合方法>,在这里我们共享一下PPT和视频,供大家参考学习. O ...
- 今晚直播丨Oracle数据库之Object的Access方法和结合方法
Oracle数据库之Object的Access方法和结合方法-03.02 上周陈晓辉老师主讲的 "Oracle SQL执行计划"课程收获近 千人 观看和好评! 今晚八点直播课,他将 ...
- oracle几何体数据类型,Oracle数据库之spatial操作geometry方法
本文主要向大家介绍了Oracle数据库之spatial操作geometry方法,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 两个对象之间关系: RELATE SDO_GEOM ...
- Oracle数据库关闭的三种方法
Oracle数据库关闭应该用什么方法呢?下面就教您三种最常用的Oracle数据库关闭的方法,希望对您学习Oracle数据库关闭方面有所启迪. 1.正常关闭 正常关闭数据库所用的选项是normal,数据 ...
- oracle数据库impdp命令的使用方法
oracle数据库impdp命令的使用方法 impdp命令直接在命令行(cmd/bash)下直接用,不必登录oracle.只能导入expdp命令导出的dmp文件. 但是导出时数据所在的表空间以及用户会 ...
最新文章
- Kibana + Elasticsearch + ik分词的集群搭建
- R语言螺旋线型线性不可分数据xgboost分类:使用xgboost模型来解决螺旋数据的分类问题、可视化模型预测的结果、添加超平面区域渲染并与原始数据标签进行对比分析
- 新视频超分算法来了:CVPR 2021 NTIRE 2021 冠军
- Java Windows 环境配置
- BZOJ2093 : [Poi2010]Frog
- GPU Gems1 - 5 改良的Perlin噪声的实现
- P3346-[ZJOI2015]诸神眷顾的幻想乡【广义SAM】
- jvm体系结构概述_JVM体系结构:JVM和JVM体系结构概述
- dateformat线程_Java最佳实践–多线程环境中的DateFormat
- mysql 4字节utf8_MySQL 4字节utf8字符更新失败一例
- 31岁博士副县长拟提任正处,3年前毕业被人才引进
- layui导航栏页面滚动固定_帮你搞定长滚动网页的设计!这5种设计策略需谨记!...
- 对人工智能产品发展的几点认识
- 华为企业互动社区云计算板块
- 逆天闪存设备 居然能将数据保存至少百年
- WireShark抓包后数据分析
- 电脑自带蓝牙与HC-06蓝牙模块使用串口助手通信
- 经济学计算机会成本和贸易区直的题,管理经济学2017年4月真题(02628)
- 火遍全网的「蚂蚁呀嘿」教程开源了!
- Linux的命令回收站在哪,Trash-Cli:Linux 上的命令行回收站工具