`
mamaoyuan625
  • 浏览: 173430 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

oracle实现交叉报表

阅读更多
在企业中,尤其是中国式报表,很常见。 
--交叉报表实例:
将表:
______________________________________
|a_name   |   a_subject   |  a_score |
|张三     |    语文       |   80     |
|张三     |    数学       |   70     |
|张三     |    英语       |   60     |
|李四     |    语文       |   90     |
|李四     |    数学       |   30     |
|李四     |    英语       |   100    |
--------------------------------------
转换成:
______________________________________
|   \  |  语文   |   数学   |   英语 |
|张三  |  80     |   70     |   60   |
|李四  |  90     |   30     |   100  |
--------------------------------------
--创建表
drop table t_across;
create table t_across(
a_name varchar2(20) not null,
a_subject varchar2(20) not null,
a_score number(3)
);
--插入数据
insert into t_across(a_name,a_subject,a_score)
values('张三','语文',80);
insert into t_across(a_name,a_subject,a_score)
values('张三','数学',70);
insert into t_across(a_name,a_subject,a_score)
values('张三','英语',60);
insert into t_across(a_name,a_subject,a_score)
values('李四','语文',90);
insert into t_across(a_name,a_subject,a_score)
values('李四','数学',30);
insert into t_across(a_name,a_subject,a_score)
values('李四','英语',100);
commit;
--显示数据
select * from t_across;
--显示交叉表的格式
select a_name "学生\成绩",sum(decode(a_subject,'语文',a_score,null)) "语文",   
                sum(decode(a_subject,'数学',a_score,null)) "数学",   
                sum(decode(a_subject,'英语',a_score,null)) "英语"   
from t_across
group by a_name;

 主要是用到decode函数来实现交叉报表

 

 

分享到:
评论

相关推荐

    oracle交叉表sql

    交叉表 sql http://whitewolf.0fees.net

    Oracle动态交叉表生成

    Oracle动态交叉表生成

    数据分层汇总交叉报表SQL语句实现方法

    在管理系统中,管理人员往往需要对业务数据进行不同需求的分层汇总,并产生各种形式交叉报表。为了实现此类报表,程序员需要构造层次结构非常复杂的SQL语句,甚至使用前台编程工具或其它报表工具来完成。 以下通过二...

    交叉查询经典

    Oracle数据库交叉查询经典 交叉表、行列转换和交叉查询经典

    sql交叉表中是使用

    sqlserver中 交叉表的使用 及遇到的一些小问题

    范式下的Oracle数据库设计及其动态交叉表的生成.pdf

    范式下的Oracle数据库设计及其动态交叉表的生成.pdf

    范式下的Oracle数据库设计及其动态交叉表的生成 (1).pdf

    范式下的Oracle数据库设计及其动态交叉表的生成 (1).pdf

    Oracle Sql 性能优化

    如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. 2、WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的...

    oracle语句优化方法.txt

    如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间...

    ORACLE_SQL语句优化技术分析

    选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理...如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.

    Oracle SQL性能优化

    Oracle SQL性能优化 (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ...如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.

    Oracle_SQL优化

    选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你...

    ORACLE_SQL性能优化

    如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

     Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之一,而本书全面展示了这一工具的威力。如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习...

    oracle SQL性能优化

    如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间...

    Oracle数据库、SQL

    8.1报表统计常用 16 8.2缺省情况组函数处理什么值 16 8.3当组函数要处理的所有值都为null时 16 8.4行级信息和组级信息 16 九、 group by子句 17 9.1语法和执行顺序 17 9.2分组过程 17 9.3常见错误 17 9.4多列分组 17...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    说明:用于连接到oracle数据库,也可实现用户的切换 用法:conn 用户名/密码 [as sysdba/sysoper] 注意:当用特权用户连接时,必须带上sysdba或sysoper 例子: 3. 断开连接(disc) 说明:断开与当前数据库的连接 ...

Global site tag (gtag.js) - Google Analytics