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
  • 相关阅读:
    MVP模式与MVVM模式
    webpack的配置处理
    leetcode 287 Find the Duplicate Number
    leetcode 152 Maximum Product Subarray
    leetcode 76 Minimum Window Substring
    感知器算法初探
    leetcode 179 Largest Number
    leetcode 33 Search in Rotated Sorted Array
    leetcode 334 Increasing Triplet Subsequence
    朴素贝叶斯分类器初探
  • 原文地址:https://www.cnblogs.com/Godblessyou/p/987411.html
Copyright © 2011-2022 走看看