数据库:ORACLE 11G
这是我根据工作环境创建的简化的表,实际单位有上百个,需要一个比较通用的方法。
原始数据表结构如下:
需要达到的效果如下图:
也就是先根据单位分类,然后将后面四个属性中的数值进行合并相加。
如果达不到这样的效果也可以在每类单位下面加一行合计。
测试表建表代码如下:
-- Create table
create table TONGJI002
(
id NUMBER,
danwei VARCHAR2(100),
yilei NUMBER,
erlei NUMBER,
sanlei NUMBER,
silei NUMBER
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64
next 1
minextents 1
maxextents unlimited
);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (1, '第一中学', 2, 2, 5, 6);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (2, '第一中学', 1, null, 4, null);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (3, '第一中学', null, 3, null, 9);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (4, '第二中学', null, null, 7, 8);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (5, '第二中学', null, 5, null, null);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (6, '第三中学', 3, 3, 4, 8);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (7, '第三中学', 1, null, 5, null);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (8, '第三中学', 1, 6, null, 9);
insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (9, '第三中学', null, null, 8, 8);