当前位置: 首页 > news >正文

left join的多重串联与groupby

有三张表或组合查询,f1,f2,f3,其中,f1分别与f2,f3是一对多关系,f1一条记录可能对应f2或f3中0条或多条记录

要创建一个查询,以f1为基准,即f1中有多少条记录,结果也就返回对应数量的记录,并整合f2,f3中的相应信息

此时需要创建两个left join 串接并加上group by如:

有三张表或组合查询,f1,f2,f3,其中,f1分别与f2,f3是一对多关系,f1一条记录可能对应f2或f3中0条或多条记录 

要创建一个查询,以f1为基准,即f1中有多少条记录,结果也就返回对应数量的记录,并整合f2,f3中的相应信息 

此时需要创建两个left join 串接并加上group by如: 

select f1.x,f1.y,max(f2.b),wmsys.wm_concat(f3.c)

from

(.........

) f1

left join

(........

) f2

on f1.z=f2.k

left join

(........

) f3

on f1.z=f3.c

group by f1.x,f1.y

 

实例

select f1.pro_uuid,f1.程序类型,f1.程序名,f1.过渡名,f1.航线类型,f1.航线限定1,f1.航线限定2, f1.机型限制

,wmsys.wm_concat(nvl2(f2.page,f1.ad||'-'||f2.page,null)) 航图, wmsys.wm_concat(f2.nav_source) 导航源

,wmsys.wm_concat(distinct nvl2(f3.rrwd,'RW'||f3.rrwd,null)) 跑道

from

(

select d.procedure_uuid pro_uuid,a.designator ad,

decode(d.PRO_TYPE,'SID','离场','STAR','进场','IAP','进近',PRO_TYPE) 程序类型,

d.PRO_NAME 程序名,

d.TRANS_IDEN 过渡名,

d.route_type||' '||(select name from TERMPRO_RULE_ROUTE_TYPE where protype=d.pro_type and routetype=d.route_type) 航线类型,

d.qulifier_1||' '||(select QUALIFIERNAME from TERMPRO_RULE_ROUTE_QUALIFIER where QUALIFIER=d.qulifier_1 and ONE_OR_TWO=1) 航线限定1,

d.qulifier_2||' '||(select QUALIFIERNAME from TERMPRO_RULE_ROUTE_QUALIFIER where QUALIFIER=d.qulifier_2 and ONE_OR_TWO=2) 航线限定2,

decode(acft_cat,'P',null,(select name from RULE_ACFT_CAT where CODE_ACFT_CAT= d.acft_cat)) 机型限制

from TERMINAL_PROCEDURE_TS d,airport_heliport_ts a

where d.airport_heliport_uuid='4a4ea52d-69be-48e4-baa1-321ee6d023d7'

and d.airport_heliport_uuid=a.airport_heliport_uuid

and vernumber(a.eff_version_id)<=201799 and vernumber(a.out_version_id)>201799 and d.interpretation='BASELINE'

and vernumber(d.eff_version_id)<=201799 and vernumber(d.out_version_id)>201799 and d.interpretation='BASELINE'

) f1

left join

(

select pc.procedure_uuid pro_uuid, c.page_number page, tc.type_name nav_source 

from terminal_chart_ts c, termpro_chart_ts pc, terminal_chart_type tc

where pc.chart_uuid=c.terminal_chart_uuid

and c.sub_chart_type_id=tc.chart_type_id

and vernumber(c.eff_version_id)<=201799 and vernumber(c.out_version_id)>201799 and c.interpretation='BASELINE'

and vernumber(pc.eff_version_id)<=201799 and vernumber(pc.out_version_id)>201799 and pc.interpretation='BASELINE'

) f2

on f1.pro_uuid=f2.pro_uuid

left join

(

select pw.procedure_uuid pro_uuid, rd.designator rrwd

from TERMPRO_RWYDRC_TS pw, runway_direction_ts rd

where pw.runway_direction_uuid=rd.runway_direction_uuid

and vernumber(pw.eff_version_id)<=201799 and vernumber(pw.out_version_id)>201799 and pw.interpretation='BASELINE'

and vernumber(rd.eff_version_id)<=201799 and vernumber(rd.out_version_id)>201799 and rd.interpretation='BASELINE'

) f3

on f1.pro_uuid=f3.pro_uuid

group by f1.pro_uuid,f1.程序类型,f1.程序名,f1.过渡名,f1.航线类型,f1.航线限定1,f1.航线限定2, f1.机型限制

order by decode(f1.程序类型,'离场',1,'进场',2,'进近',3),f1.程序名,f1.过渡名

转载于:https://www.cnblogs.com/mol1995/p/7852137.html

相关文章:

  • 线性结构之数组
  • js,query 选择radio+选中select+checkbox选中
  • Nagiso 监控服务器的RAID磁盘阵列状态
  • java 面试题解惑一 类的初始化顺序
  • Java虚拟机支持的最大内存限制
  • protobuf编码规则
  • Azure Web应用中设置静态虚拟目录的方法(比如部署Django需要用到)
  • Java左右补齐字符长度
  • Samba服务器搭建
  • linux 安装php
  • 算法导论
  • 走近复杂数据库计算型软件的设计与制作(3)—视图的设计
  • fstrict-aliasing
  • mybatis-入门
  • iptables入门 (取自鸟哥的Linux私房菜)
  • [deviceone开发]-do_Webview的基本示例
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • android图片蒙层
  • Docker: 容器互访的三种方式
  • MobX
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Python_OOP
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • springMvc学习笔记(2)
  • Vue小说阅读器(仿追书神器)
  • 构造函数(constructor)与原型链(prototype)关系
  • 关于 Cirru Editor 存储格式
  • 聊聊sentinel的DegradeSlot
  • 前端学习笔记之观察者模式
  • 设计模式(12)迭代器模式(讲解+应用)
  • 实现菜单下拉伸展折叠效果demo
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 源码安装memcached和php memcache扩展
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • Python 之网络式编程
  • ​ssh免密码登录设置及问题总结
  • ​你们这样子,耽误我的工作进度怎么办?
  • # centos7下FFmpeg环境部署记录
  • #13 yum、编译安装与sed命令的使用
  • (2)(2.10) LTM telemetry
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (力扣)1314.矩阵区域和
  • (生成器)yield与(迭代器)generator
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (译) 函数式 JS #1:简介
  • (转)iOS字体
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)Scala的“=”符号简介
  • (转)视频码率,帧率和分辨率的联系与区别
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .dwp和.webpart的区别
  • .NET Core Web APi类库如何内嵌运行?