**oracle遇见的问题
今天遇见一个奇葩的问题,在不同的数据库下有差异,有的查不到值,有的能查到,两个表根据时间进行left join 关联。具体代码如下:
SELECT * FROM (SELECT A.D_ASTSTAT, A.C_PORT_CODE,
COUNT(*) AS RECORDNUM,
MAX(AST.C_UPDATE_TIME) AS C_UPDATE_TIME
FROM T_R_FR_ASTSTAT A
LEFT JOIN T_P_AB_PORT C
ON A.C_PORT_CODE = C.C_PORT_CODE
LEFT JOIN (SELECT D_ASTSTAT, C_PORT_CODE, C_KM_CODE AS C_UPDATE_TIME
FROM T_R_FR_ASTSTAT
WHERE C_NAV_TYPE = ‘CHECK’
AND C_KEY_CODE = ‘ZZR’) AST
ON A.D_ASTSTAT = AST.D_ASTSTAT
AND A.C_PORT_CODE = AST.C_PORT_CODE
WHERE A.C_NAV_TYPE IN (‘TOTAL’, ‘TOTAL_ALL’)
AND A.D_ASTSTAT >= TO_DATE(‘20180916’,‘YYYYMMDD’)
AND A.D_ASTSTAT <= TO_DATE(‘20180916’,‘YYYYMMDD’)
AND A.C_PORT_CODE IN (‘000174’)
GROUP BY A.C_PORT_CODE, A.D_ASTSTAT) d
left join (SELECT TO_DATE(‘20180916’,‘YYYYMMDD’) + ROWNUM - 1 AS DAYLIST FROM DUAL
CONNECT BY ROWNUM <= TRUNC(TO_DATE(‘20180916’,‘YYYYMMDD’) - TO_DATE(‘20180916’,‘YYYYMMDD’)) + 1) aa
on d.D_ASTSTAT = aa.DAYLIST ;
分段查询的效果:
上面两个数据集关联条件只有一个,就是日期。。。
结果查不出值。。。我也是醉了。搞了一天没想明白,感觉是数据库有问题,怎么说呢,另外一个数据库这么查询有能查到,试了好几个数据库,有些能有些不能。
哪个大神看到能帮忙解释下吗~