本文共 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/