博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多表外连接的使用
阅读量:6762 次
发布时间:2019-06-26

本文共 1493 字,大约阅读时间需要 4 分钟。

目前需要找的报表如下

imie号,一级代理商进货日期,二级代理商发货日期,渠道销售日期,门店销售日期,型号,实际开机城市,经度,纬度等等

需要查询的条件是根据一级代理商的code和门店销售日期(4,5月)找出对应条件内imie的渠道信息

于是根据上述条件和报头,以及相应表关系需要将各表连接后取值,在连接时必须考虑外连接的情况

 FROM    MCS_HQ.MA_DC_SERL T1     --存放从源发货到目的地的关键信息,如发货日期等    
                ,MCS_HQ.HI_GSCM_FOTA T2   --存放实际开机信息,如开机日期,型号
                ,MCS_HQ.HI_SALE_CHNL T3   --存放渠道销售信息
                ,MCS_HQ.HI_SALE T4        --存放销售信息,主要是促销员报的销量
                ,MCS_HQ.HI_GSCM_FOTA_REGN T5 --存放实际开机的地点,如经纬度和城市
                ,T_RPO T6
        WHERE   T1.DC_ID = 'CC0541015'
        AND     T1.DIST_CHNL_DIV = 'HHP'
        AND     T2.SERL_NO(+) = T1.SERL_NO
        AND     T3.SERL_NO = T1.SERL_NO
        AND     T3.SALE_YMD BETWEEN '20150401' AND '20150531'
        AND     T4.SERL_NO(+) = T1.SERL_NO
        AND     T5.IMEI(+) = T1.SERL_NO
        AND     T6.SERL_NO(+) = T1.SERL_NO;
首先这里有两个查询条件是必须遵守的,必须找出的是这个两个查询条件中的数据,那么就应以这两个查询条件的结果集为
基准做外连接,也就是说,客户是CC0541015且销售日期在4,5月的数据对应的imie都要显示出来,那么以这个结果集连接的
其他表都要用外连接。因此这里T2,T4,T5连接时都用外连接,然后T3没有用,因为其查询条件是限定的,因此即便外连接表
根据日期条件还是会选出指定日期的数据,所以T3,表外连接无意义。

这里因为业务原因一级代理商的code的条件会根据不同基准改变,如按二级代理商的上级代理商为基准,也可以查询上述报表

但实现相同的逻辑,在各表连接时外连接的使用就不相同
FROM    MCS_HQ.MA_DC_SERL T1
                ,MCS_HQ.HI_GSCM_FOTA T2
                ,MCS_HQ.HI_SALE_CHNL T3
                ,MCS_HQ.HI_SALE T4
                ,MCS_HQ.HI_GSCM_FOTA_REGN T5
                ,T_RPO T6
        WHERE  
                T3.CHNL_SUPP_DC_ID = 'CC0541015'
        AND     T1.DIST_CHNL_DIV(+) = 'HHP'
        AND     T2.SERL_NO(+) = T3.SERL_NO
        AND     T3.SERL_NO = T1.SERL_NO(+)
        AND     T3.SALE_YMD BETWEEN '20150401' AND '20150531'
        AND     T4.SERL_NO(+) = T3.SERL_NO
        AND     T5.IMEI(+) = T3.SERL_NO
        AND     T6.SERL_NO(+) = T3.SERL_NO; 
实际表连接时将以T3表的上级代理商code为条件,这是将以上级代理商code和销售日期(4,5)月为基准显示此结果集中所有imie,
其他表和此结果集连接使用外连接,因此这里T1,T2,T4,T5都要做表外连接,且他们的查询条件也要使用外连接,这样才能
保证两种方法的查询结果意义一致

转载地址:http://oideo.baihongyu.com/

你可能感兴趣的文章
nullnull用宏定义swap(x,y)
查看>>
【Javascript】类,封装性 -- 1
查看>>
Mono for Android安装配置破解
查看>>
uploadfy 常见问题收集
查看>>
WPF----数据绑定
查看>>
子类化GetOpenFileName/GetSaveFileName, 以及钩子函数OFNHookProc的使用的简要说明
查看>>
C语言中判断int,long型等变量是否赋值的方法
查看>>
leetcode -- Longest Valid Parentheses
查看>>
详解JAVA输出Hello World
查看>>
概率问题随笔
查看>>
关于在堆中创建字符串对象的疑惑
查看>>
poj1077(康托展开+bfs+记忆路径)
查看>>
hibernate 树状映射
查看>>
值得 Web 开发人员收藏的20个 HTML5 实例教程
查看>>
移动设备、手机浏览器Javascript滑动事件代码
查看>>
linux,__attribute__用法
查看>>
LinqToXML~读XML文件续
查看>>
java.sql.SQLException: JZ00L
查看>>
@Resource注解
查看>>
Android(Linux) 网卡名修改
查看>>