报表相关

本文介绍了如何使用SQL进行报表的设计与实现,包括普通报表、交叉报表等类型,并详细讲解了利用分支语句、聚合函数等手段进行数据统计的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.报表——普通报表是组成列和统计列都在一条记录(行)里。

 

select d.deptno,d.dname,
       sum(decode(sex,'男',1,0)) 男,
       sum(decode(sex,'女',1,0)) 女,
       1 合计
from emp2,dept d where emp2.deptno=d.deptno
group by d.deptno,d.dname;
select d.deptno,d.dname,
       count(decode(sex,'男',1,null)) 男,
       count(decode(sex,'女',1,null)) 女,
       count(1) 合计
from emp2,dept d where emp2.deptno=d.deptno
group by d.deptno,d.dname
union all
select null,'合计',
       count(decode(sex,'男',1,null)) 男,
       count(decode(sex,'女',1,null)) 女,
       count(1) 合计
from emp2;

 

2.怎么做报表

     2.1:通过计算列产生满足条件的需要的数据

 *分支语句

     2.2:统计

           2.2.1:聚合函数

           2.2.2:Oracle统计函数

                  2.2.2.1:rollup(,)——以第一字段和无条件做小记

select deptno,sex,count(*) 人数 from emp2
group by rollup(deptno,sex);

 

                  2.2.2.2:cube(,)——以第一字段、第二字段和无条件做小记

 

select deptno,sex,count(*) 人数 from emp2
group by cube(deptno,sex);

     2.3:数据入统计表 

select d.deptno,d.dname,
       count(decode(sex,'男',1,null)) 男,
       count(decode(sex,'女',1,null)) 女,
       count(1) 合计
from emp2,dept d where emp2.deptno=d.deptno
group by d.deptno,d.dname
union all
select null,'合计',
       count(decode(sex,'男',1,null)) 男,
       count(decode(sex,'女',1,null)) 女,
       count(1) 合计
from emp2;

 

6报表分类

   6.1:交叉报表——指对表数据的统计有交叉。例如横向和纵向的统计,每一个数据单元都是横纵的交叉。

--统计各部门的不同工资段的人数、部门人数、不同段总人数

 

   6.2:多级报表——是指表头有多行。一般的表头都是一行多列。

 

   6.3:同期报表——今年的X月份与去年同期X月份进行比较

 

   6.4:环比报表——今年的X月份与上个月份进行比较

 

   6.

 

   6.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值