create table company(id number(4),company varchar2(20)); --新建一张单位表
create table factory(id number(4),factory varchar2(20));--新建一张生产厂家
create table spec(id number(4),spec varchar2(20));--新建一张规格型号表
SQL> create table equip(id number(4),equip varchar(20),companyid number(4),factoryid number(4),specd
id number(4)); --新建一张设备表
insert into company values(1,'单位1');
insert into company values(2,'单位2');
insert into company values(3,'单位3');
insert into factory values(1,'厂家1');
insert into factory values(2,'厂家2');
insert into factory values(3,'厂家3');
insert into factory values(4,'厂家4');
insert into spec values(1,'规格型号1');
insert into spec values(2,'规格型号2');
insert into spec values(3,'规格型号3');
insert into spec values(4,'规格型号4');
insert into equip(id,equip,companyid,factoryid,specdid) values(1,'设备名称_1',1,2,3);
查询语句如下:
SQL> select a.company "单位名称",
2 a.factory "厂家编号",
3 a.spec "规格型号",
4 count(b.id) "设备数量"
5 from (select c.id c_id,
6 c.company,
7 f.id f_id,
8 f.factory,
9 s.id s_id,
10 s.spec
11 from company c, factory f, spec s) a, equip b
12 where a.c_id = b.companyid(+)
13 and a.f_id = b.factoryid(+)
14 and a.s_id = b.specdid(+)
15 group by a.company, a.factory, a.spec;
单位名称 厂家编号 规格型号 设备数量
-------------------- -------------------- -------------------- ----------
单位1 厂家1 规格型号1 0
单位1 厂家1 规格型号2 0
单位1 厂家1 规格型号3 0
单位1 厂家1 规格型号4 0
单位1 厂家2 规格型号1 0
单位1 厂家2 规格型号2 0
单位1 厂家2 规格型号3 1
单位1 厂家2 规格型号4 0
单位1 厂家3 规格型号1 0
单位1 厂家3 规格型号2 0
单位1 厂家3 规格型号3 0
单位1 厂家3 规格型号4 0
单位1 厂家4 规格型号1 0
单位1 厂家4 规格型号2 0
单位1 厂家4 规格型号3 0
单位1 厂家4 规格型号4 0
单位2 厂家1 规格型号1 0
单位2 厂家1 规格型号2 0
单位2 厂家1 规格型号3 0
单位2 厂家1 规格型号4 0
单位名称 厂家编号 规格型号 设备数量
-------------------- -------------------- -------------------- ----------
单位2 厂家2 规格型号1 0
单位2 厂家2 规格型号2 0
单位2 厂家2 规格型号3 0
单位2 厂家2 规格型号4 0
单位2 厂家3 规格型号1 0
单位2 厂家3 规格型号2 0
单位2 厂家3 规格型号3 0
单位2 厂家3 规格型号4 0
单位2 厂家4 规格型号1 0
单位2 厂家4 规格型号2 0
单位2 厂家4 规格型号3 0
单位2 厂家4 规格型号4 0
单位3 厂家1 规格型号1 0
单位3 厂家1 规格型号2 0
单位3 厂家1 规格型号3 0
单位3 厂家1 规格型号4 0
单位3 厂家2 规格型号1 0
单位3 厂家2 规格型号2 0
单位3 厂家2 规格型号3 0
单位3 厂家2 规格型号4 0
单位3 厂家3 规格型号1 0
单位名称 厂家编号 规格型号 设备数量
-------------------- -------------------- -------------------- ----------
单位3 厂家3 规格型号2 0
单位3 厂家3 规格型号3 0
单位3 厂家3 规格型号4 0
单位3 厂家4 规格型号1 0
单位3 厂家4 规格型号2 0
单位3 厂家4 规格型号3 0
单位3 厂家4 规格型号4 0
48 rows selected
create table factory(id number(4),factory varchar2(20));--新建一张生产厂家
create table spec(id number(4),spec varchar2(20));--新建一张规格型号表
SQL> create table equip(id number(4),equip varchar(20),companyid number(4),factoryid number(4),specd
id number(4)); --新建一张设备表
insert into company values(1,'单位1');
insert into company values(2,'单位2');
insert into company values(3,'单位3');
insert into factory values(1,'厂家1');
insert into factory values(2,'厂家2');
insert into factory values(3,'厂家3');
insert into factory values(4,'厂家4');
insert into spec values(1,'规格型号1');
insert into spec values(2,'规格型号2');
insert into spec values(3,'规格型号3');
insert into spec values(4,'规格型号4');
insert into equip(id,equip,companyid,factoryid,specdid) values(1,'设备名称_1',1,2,3);
查询语句如下:
SQL> select a.company "单位名称",
2 a.factory "厂家编号",
3 a.spec "规格型号",
4 count(b.id) "设备数量"
5 from (select c.id c_id,
6 c.company,
7 f.id f_id,
8 f.factory,
9 s.id s_id,
10 s.spec
11 from company c, factory f, spec s) a, equip b
12 where a.c_id = b.companyid(+)
13 and a.f_id = b.factoryid(+)
14 and a.s_id = b.specdid(+)
15 group by a.company, a.factory, a.spec;
单位名称 厂家编号 规格型号 设备数量
-------------------- -------------------- -------------------- ----------
单位1 厂家1 规格型号1 0
单位1 厂家1 规格型号2 0
单位1 厂家1 规格型号3 0
单位1 厂家1 规格型号4 0
单位1 厂家2 规格型号1 0
单位1 厂家2 规格型号2 0
单位1 厂家2 规格型号3 1
单位1 厂家2 规格型号4 0
单位1 厂家3 规格型号1 0
单位1 厂家3 规格型号2 0
单位1 厂家3 规格型号3 0
单位1 厂家3 规格型号4 0
单位1 厂家4 规格型号1 0
单位1 厂家4 规格型号2 0
单位1 厂家4 规格型号3 0
单位1 厂家4 规格型号4 0
单位2 厂家1 规格型号1 0
单位2 厂家1 规格型号2 0
单位2 厂家1 规格型号3 0
单位2 厂家1 规格型号4 0
单位名称 厂家编号 规格型号 设备数量
-------------------- -------------------- -------------------- ----------
单位2 厂家2 规格型号1 0
单位2 厂家2 规格型号2 0
单位2 厂家2 规格型号3 0
单位2 厂家2 规格型号4 0
单位2 厂家3 规格型号1 0
单位2 厂家3 规格型号2 0
单位2 厂家3 规格型号3 0
单位2 厂家3 规格型号4 0
单位2 厂家4 规格型号1 0
单位2 厂家4 规格型号2 0
单位2 厂家4 规格型号3 0
单位2 厂家4 规格型号4 0
单位3 厂家1 规格型号1 0
单位3 厂家1 规格型号2 0
单位3 厂家1 规格型号3 0
单位3 厂家1 规格型号4 0
单位3 厂家2 规格型号1 0
单位3 厂家2 规格型号2 0
单位3 厂家2 规格型号3 0
单位3 厂家2 规格型号4 0
单位3 厂家3 规格型号1 0
单位名称 厂家编号 规格型号 设备数量
-------------------- -------------------- -------------------- ----------
单位3 厂家3 规格型号2 0
单位3 厂家3 规格型号3 0
单位3 厂家3 规格型号4 0
单位3 厂家4 规格型号1 0
单位3 厂家4 规格型号2 0
单位3 厂家4 规格型号3 0
单位3 厂家4 规格型号4 0
48 rows selected