zoukankan      html  css  js  c++  java
  • 利用笛卡尔乘积和外连接解决保留行数据问题

    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
  • 相关阅读:
    matlab 绘制条状图形
    细思恐极 天价房都被谁买去了?——如何操作?
    matlab中的containers.Map()
    林彪:怎样当好一个师长?
    matlab 怎么建立结构体数组?
    matlab中patch函数的用法
    Ubuntu 安装配置MySQL,并使用VS的Server Explorer UI界面远程管理MySQL
    CLIQUE 聚类算法以及Java实现+多线程
    R 中同步进行的多组比较的包:npmc
    基于D3JS绘制中国地图
  • 原文地址:https://www.cnblogs.com/Godblessyou/p/987411.html
Copyright © 2011-2022 走看看