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.