oracle 三表关联查询

CreationTime--2018年7月4日17点52分

Author:Marydon

左连接实现三表关联

表A---------------------------------关联第一张表B-----------------------关联第二张表c

1.语法

  select * from 表名A left join 表B on A.columnX=B.columnM and A.columnY=B.columnN left join 表c on 表A=表c的id

2.应用场景

  四张表 GJPT_BASY、GJZY_BASY、GJPT_BASY_ERROR、GJZY_BASY_ERROR
  根据四张表,要求返回:医疗机构名称,医疗机构编号,总数,合格数和问题数

3.SQL实现

SELECT TEMP1.*, TEMP2.HEGESUM, TEMP3.TROUBLESUM
FROM (SELECT T1.YLNAME, T1.YLCODE, SUM(RS1) AS YLSUM--总数
FROM (SELECT COUNT(1) AS RS1,
HDSD00_11_118 AS YLNAME,
HDSD00_11_119 AS YLCODE
FROM GJPT_BASY
GROUP BY HDSD00_11_119, HDSD00_11_118
UNION ALL
SELECT COUNT(1) AS RS1,
HDSD00_12_133 AS YLNAME,
HDSD00_12_134 AS YLCODE
FROM GJZY_BASY
GROUP BY HDSD00_12_133, HDSD00_12_134
UNION ALL
SELECT COUNT(1) AS RS1,
HDSD00_11_118 AS YLNAME,
HDSD00_11_119 AS YLCODE
FROM GJPT_BASY_ERROR
GROUP BY HDSD00_11_119, HDSD00_11_118
UNION ALL
SELECT COUNT(1) AS RS1,
HDSD00_12_133 AS YLNAME,
HDSD00_12_134 AS YLCODE
FROM GJZY_BASY_ERROR
GROUP BY HDSD00_12_133, HDSD00_12_134) T1
GROUP BY T1.YLNAME, T1.YLCODE) TEMP1
LEFT JOIN (SELECT *
FROM (SELECT T2.YLNAME, T2.YLCODE, SUM(RS2) AS HEGESUM--合格数
FROM (SELECT COUNT(1) AS RS2,
HDSD00_11_118 AS YLNAME,
HDSD00_11_119 AS YLCODE
FROM GJPT_BASY
GROUP BY HDSD00_11_119, HDSD00_11_118
UNION ALL
SELECT COUNT(1) AS RS2,
HDSD00_12_133 AS YLNAME,
HDSD00_12_134 AS YLCODE
FROM GJZY_BASY
GROUP BY HDSD00_12_133, HDSD00_12_134) T2
GROUP BY T2.YLNAME, T2.YLCODE)) TEMP2
ON TEMP2.YLNAME = TEMP1.YLNAME
AND TEMP2.YLCODE = TEMP1.YLCODE
LEFT JOIN (SELECT *
FROM (SELECT T3.YLNAME, T3.YLCODE, SUM(RS3) TROUBLESUM--问题数
FROM (SELECT COUNT(1) AS RS3,
HDSD00_11_118 AS YLNAME,
HDSD00_11_119 AS YLCODE
FROM GJPT_BASY_ERROR
GROUP BY HDSD00_11_119, HDSD00_11_118
UNION ALL
SELECT COUNT(1) AS RS3,
HDSD00_12_133 AS YLNAME,
HDSD00_12_134 AS YLCODE
FROM GJZY_BASY_ERROR
GROUP BY HDSD00_12_133, HDSD00_12_134) T3
GROUP BY T3.YLNAME, T3.YLCODE)) TEMP3
ON TEMP3.YLNAME = TEMP1.YLNAME
AND TEMP3.YLCODE = TEMP1.YLCODE
WHERE TEMP3.YLCODE='41580781841010511A1001';

相关推荐:

 

oracle 三表关联查询的更多相关文章

  1. Thinkphph 使用RelationModel的三表关联查询机制

    有如下三个表 a表 b表 c表id bid other id cid other id other a表的bid关联b表的id,b表的cid关联c表的id 现在需要查询a表的时候顺带把b表和c表的相关 ...

  2. oracle 两表关联查询

      oracle 两表关联查询 CreationTime--2018年7月4日17点27分 Author:Marydon 情景描述 查询学生表student,sname,sex,age信息及所在班级c ...

  3. MySQL查询(关联查询)

    一.mysql查询与权限 (一)数据库关联查询 **内连接查询(inner join)** 查询两个表共有的数据,交集 SELECT * FROM tb1 INNER JOIN tb2 ON 条件 所 ...

  4. Oracle 数据库(oracle Database)Select 多表关联查询方式

    Oracle数据库中Select语句语法及介绍 SELECT [ ALL | DISTINCT ] <字段表达式1[,<字段表达式2[,…] FROM <表名1>,<表名 ...

  5. 多表关联查询(ORACLE版)

    前言:这几天学习oracle,把自己对于关联查询的理解,记录下.如有错误请指正! 交叉连接: 交欢连接又称为“笛卡儿积连接”,是两个或多个表之间的无条件连接.一个表中所有的记录与其它表的所有的记录进行 ...

  6. SQL三表左关联查询

    今天在开发的时候遇到了一个需求就是三遍关联查询,表A包含有表B和表C的uid,然后使用left join左关联查询: SELECT c.`uid`, `fromuseruid`, `touseruid ...

  7. Oracle SQL——varchar2() 和 char()关联查询 存在空格

    背景 表dbcontinfo 字段loanid,类型为varchar2(60) 表dbloanbal 字段loanid,类型为char(60) loanid字段实际长度为24位 问题 两张表dbloa ...

  8. oracle库两个表关联查询时用 count 报错【我】

    oracle数据库,需要对两个表进行关联查询(根据两个字段),结果发现关联后不能改为 count 获取数量,报错如下: 同样的sql换到另外一个数据库就可以(只是因为数据量在千万级,所以很慢,用时40 ...

  9. oracle多表关联查询和子查询

    oracle多表关联查询和子查询 一.多表关联查询 例子: SQL> create table student1 ( sid ), sname ), sage )); Table created ...

随机推荐

  1. BZOJ1002輪狀病毒 暴搜 + 找規律 + 高精度

    @[暴搜, 找規律, 高精度] Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个\(n\)轮状基由圆环上\(n\)个不同的基原子和圆心处一个核原子构成的,2个 ...

  2. [bzoj1025][SCOI2009]游戏 (分组背包)

    Description windy学会了一种游戏.对于1到N这N个数字,都有唯一 且不同的1到N的数字与之对应.最开始windy把数字按顺序1,2,3,……,N写一排在纸上.然后再在这一排下面写上它们 ...

  3. 【转】代码混淆和apk反编译

    代码混淆 http://blog.csdn.net/vipzjyno1/article/details/21042823 apk反编译 http://blog.csdn.net/vipzjyno1/a ...

  4. Java实现-2016百度秋招(颜色反转、相似字符串)

    1.颜色反转 题目描述: 在 Web 开发中,通常使用 16 进制 RGB 表示一个颜色.例 如 #0000FF 表示蓝色,#FF7F50 表示珊瑚红.在这道题中,我们要求把给定的一种颜色取反,方法是 ...

  5. android ORM 框架 search

    1. ORMLite 特性: 通过在类上添加注解设置类 强大抽象DAO类 QueryBuilder 可以灵活的构造简单和复杂的查询语句 支持MySQL, Postgres, Microsoft SQL ...

  6. VC中__int64的用法

    VCVC6.0的64位整数分别叫做__int64与unsigned __int64,其范围分别是[-2^63, 2^63)与[0,2^64),即-922337203685 4775808~922337 ...

  7. css方法实现div固定浏览器底端

    CSS: ;;background-image:url(text.txt);/*for IE6 防抖,也可以用一张图片URL*/ background-attachment:fixed;} /*是否存 ...

  8. pytest文档9-参数化parametrize

    前言 pytest.mark.parametrize装饰器可以实现测试用例参数化. parametrizing 1.这里是一个实现检查一定的输入和期望输出测试功能的典型例子 # content of ...

  9. Hibernate中@Embedded和@Embeddable注解

    在使用实体类生成对应的数据库表时,很多的时候都会遇到这种情况:在一个实体类中引用另外的实体类,一般遇上这种情况,我们使用@OneToOne.@OneToMany.@ManyToOne.@ManyToM ...

  10. OpenCV图像平滑处理

    图像平滑处理 目标 本教程教您怎样使用各种线性滤波器对图像进行平滑处理,相关OpenCV函数如下: blur GaussianBlur medianBlur bilateralFilter 原理 No ...