多个left join 产生多个结果
2016-04-05 13:22
309 查看
select a.*, to_char(To_date(20160403000000, 'yyyyMMddhh24miss'),'yyyy/mm/dd') as omc_start_time, to_char(To_date(20160404000000, 'yyyyMMddhh24miss'),'yyyy/mm/dd') as omc_end_time, ROUND(sc."切换成功率",2) AS "OMC-源小区切换成功率%", ROUND(sc."同频切换成功率",2) AS "OMC-源小区同频切换成功率%", ROUND(sc."异频切换成功率",2) AS "OMC-源小区异频切换成功率%", ROUND(sc."切换失败次数(含准备)",2) AS "OMC-源小区切换失败次数含准备", sb.alarm as s_alarm, ROUND(tc."切换成功率",2) AS "OMC-目标小区切换成功率%", ROUND(tc."同频切换成功率",2) AS "OMC-目标小区同频切换成功率%", ROUND(tc."异频切换成功率",2) AS "OMC-目标小区异频切换成功率%", ROUND(tc."切换失败次数(含准备)",2) AS "OMC-目标小区切换失败次数含准备", tb.alarm as t_alarm from ( select x.*,y.cellname scell_name,z.cellname tcell_name,to_number(y.lat) slat,to_number(y.lon) slon,to_number(z.lat) tlat,to_number(z.lon) tlon from (select ci_s scell,cellname_s,band_s,lon_s ,lat_s ,ci_d tcell,cellname_d,band_d,lon_d,lat_d,cnt,cnt_total,pingpong_ratio from TMP_TBX_100_0_A6) x inner join TMP_TBX_100_0_CFG1 y on x.scell=y.ci inner join TMP_TBX_100_0_CFG1 z on x.tcell=z.ci ) a left join TMP_TBX_100_0_OS3 sb on to_char(round(substr(a.scell,-9)/256,0))=sb.ENBID left join TMP_TBX_100_0_OS4 sc on to_number(substr(a.scell,-9))=to_number(sc.ECGI) left join TMP_TBX_100_0_OS3 tb on to_char(round(substr(a.tcell,-9)/256,0))=tb.ENBID left join TMP_TBX_100_0_OS4 tc on to_number(substr(a.tcell,-9))=to_number(tc.ECGI)
最后的四个 left join 因为 on的 “=” 号前后条件不同,产生了4条相同的记录。
除非主键关联,才会是左表的条数。
相关文章推荐
- 轻松搞定Linux端口转发
- 轻松搞定Linux端口转发
- Oracle 数据库基础学习 (七) SQL语句综合练习
- HTML5 -1- 简介
- 游戏主策化项目开发流程
- 判断并将矩阵转化为严格对角占优矩阵
- 一款功能强大的设备调试、接口调试工具
- const、static关键字
- ajax 跨域封装 JSONP方式 默认还是GET提交请求
- Android控件架构
- 第三方cocoaPods管理工具的安装步骤
- 自定义TextView显示偏移问题
- 迷宫
- 自动刷新并指向新页面
- TCP流量控制与拥塞控制
- ConcurrentHashMap
- 上古神器--awk
- nth-child的用法
- AndroidStudio如何快速制作.so
- AndroidStudio如何快速制作.so