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. PHP -- 8个必备的PHP功能开发

    原文出处:http://www.codeceo.com/8-php-functions.html 做过PHP开发的程序员应该清楚,PHP中有很多内置的功能,掌握了它们,可以帮助你在做PHP开发时更加得 ...

  2. 【原创】Eclipse中Android项目引用

    1.选择名为SMSSDK的项目,右键--->Properties--->Android--->将Is Library勾上--->OK. 2.选中另一个名为FragmentDem ...

  3. CROC 2016 - Elimination Round (Rated Unofficial Edition) D. Robot Rapping Results Report 二分+拓扑排序

    D. Robot Rapping Results Report 题目连接: http://www.codeforces.com/contest/655/problem/D Description Wh ...

  4. 《pyhton学习手册》 第33章 异常编码细节

    try/except/else语句 这些语句的一般的格式如下图所示 其中try中定义了主要执行的动作.except中定义了try语句当中发生异常的处理器.else定义了没有发生异常时候的处理器. tr ...

  5. hihocoder1320 160周 压缩字符串

    hihocoder1320 题目链接 思路: dp解法.用map[i][j]表示从第i个开始到第j个的字串的best压缩长度.(包括i,j,两端闭合). 用k表示i,j中的一点. 用zip()表示压缩 ...

  6. spring整合mybatis是如何配置事务的?

    作者:郭无心链接:https://www.zhihu.com/question/30206875/answer/84675373来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  7. .NET Transactional File Manager

    .NET Transactional File Manager http://transactionalfilemgr.codeplex.com/ 对文件系统操作,比如copy, move, dele ...

  8. Android源码大放送之material design类型

    本文转载自:http://www.apkbus.com/android-243232-1-1.html 鉴于大家对源码的渴望,就算自己辛苦一点也要满足大家的需求,查看了几百个源码之后终于筛选出了这些精 ...

  9. ubuntu 设置静态IP GW

    网卡配置静态IP地址 编辑文件/etc/network/interfaces: sudo vi /etc/network/interfaces 并用下面的行来替换有关eth0的行:# The prim ...

  10. android mount win2008 nfs

    win2008下添加NFS 安卓下运行(需要安装busybox 还有root) busybox mount -t nfs 192.168.1.2:/NFS /nfs -o nolock