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. Boost汉字匹配 -- 宽字符

      原文链接:http://blog.csdn.net/sptoor/article/details/4930069 思路:汉字匹配,把字符都转换成宽字符,然后再匹配. 需要用到以下和宽字符有关的类: ...

  2. CDOJ 842 天下归晋 树状数组

    天下归晋 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/842 Descrip ...

  3. OpenCV2马拉松第12圈——直方图比較

    收入囊中 使用4种不同的方法进行直方图比較 葵花宝典 要比較两个直方图, 首先必需要选择一个衡量直方图相似度的对照标准.也就是先说明要在哪个方面做对照. 我们能够想出非常多办法,OpenCV採用了下面 ...

  4. It's a Buck; It's a Boost, No! It's a Switcher!

    It's a Buck; It's a Boost, No! It's a Switcher! Sanjaya Maniktala, National Semiconductor Corp., San ...

  5. Single transistor provides short-circuit protection

    In certain dc/dc-converter applications, on-chip, cycle-by-cycle current limit may be insufficient p ...

  6. CC1150 针对低功耗无线应用设计的高度集成多通道射频发送器

    Low Power Sub-1 GHz RF Transmitter 单片低成本低能耗 RF 发送芯片 应用 极低功率 UHF 无线发送器 315/433/868 和 915MHz ISM/SRD 波 ...

  7. 详解Java中的clone方法 -- 原型模式 及源码

    http://www.cnblogs.com/cq-home/p/6431426.html http://blog.csdn.net/zhangjg_blog/article/details/1836 ...

  8. Valera and Fruits

    B. Valera and Fruits time limit per test 1 second memory limit per test 256 megabytes input standard ...

  9. 富文本编辑器、日期选择器、软件天堂、防止XSS攻击、字体icon、转pdf

    [超好用的日期选择器] Layui:http://www.layui.com/laydate/ 备注:日期选择器,用过很多很多,自己也写过一些:相信这个简单而又不简单的选择器,能够给你多些美好的时光 ...

  10. Appium+python自动化55-appium desktop每次启动安装Unlock和Appium Setting问题

    前言 部分真机可能会出现每次运行代码,启动app之前都会重复安装Unlock和Appium Setting这两个小工具,有的手机会自动安装,这个还好. 有的手机每次都会弹出一个安装确认框(如部分小米和 ...