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
  • 相关阅读:
    Android 再次打开APP进入按Home键退出时的界面(thisTaskRoot)
    SQL server 安装成功到使用Sa SQL server验证登录等一系列问题
    Android JSON解析插件
    Android utils 工具类之MD5加密 MD5Utils
    Android 避免内存泄漏
    Android utils 之 日志工具类
    Android Studio 第一个Android项目
    Android Studio安装
    JDK 安装与环境配置配置——Android开发第一步
    U盘启动安装系统之旅----记录自己的第一次操作
  • 原文地址:https://www.cnblogs.com/Godblessyou/p/987411.html
Copyright © 2011-2022 走看看