WITH T1 as( select to_char( to_date('2011-04-01','yyyy-mm-dd') + rownum-1,'yyyy-mm-dd' ) as year from dual connect by to_date('2011-04-01','yyyy-mm-dd') + rownum-1 <=to_date('2011-04-05','yyyy-mm-dd') ), T2 as( select YEAR ,CHECKCOUNT FROM NORMAL ), T3 as ( select YEAR ,CHECKCOUNT FROM FAIL ) select T1.YEAR, T2.CHECKCOUNT from T1 LEFT JOIN T2 on( T1.YEAR=T2.YEAR ); select T1.YEAR, "NVL"(T2.CHECKCOUNT, 0) from T1 LEFT JOIN T2 on( T1.YEAR=T2.YEAR ); //////////第二部 WITH T1 as( select to_char( to_date('2011-04-01','yyyy-mm-dd') + rownum-1,'yyyy-mm-dd' ) as year from dual connect by to_date('2011-04-01','yyyy-mm-dd') + rownum-1 <=to_date('2011-04-05','yyyy-mm-dd') ), T2 as( select YEAR ,CHECKCOUNT FROM NORMAL ), T3 as ( select YEAR ,CHECKCOUNT FROM FAIL ) select T1.YEAR, "NVL"(T2.CHECKCOUNT, 0), "NVL"(T3.CHECKCOUNT, 0) from T1 LEFT JOIN T2 on( T1.YEAR=T2.YEAR ) LEFT JOIN T3 on( T1.YEAR=T3.YEAR ) ORDER BY YEAR;
mybatis 在oracle 數據庫生成 連續的日期sql
WITH datesel AS ( SELECT TO_CHAR ( TO_DATE (#{beginQuerytime}, 'yyyy-mm-dd') + (ROWNUM - 1), 'yyyy-mm-dd' ) AS yearMonthDay FROM dual CONNECT BY ROWNUM <= ( TO_DATE (#{endQuerytime}, 'yyyy-mm-dd') - TO_DATE (#{beginQuerytime}, 'yyyy-mm-dd') ) + 1 ), tempName AS ( SELECT TO_CHAR (CHECKTIME, 'yyyy-mm-dd') AS KEY, COUNT (IDENTITYCODE) VALUE FROM DIC_CHECKINFO WHERE CHECKTIME >= TO_DATE (#{beginQuerytime} || ' 00:00:00', 'yyyy-mm-dd HH24:mi:ss') AND CHECKTIME <= TO_DATE (#{endQuerytime} || ' 23:59:59', 'yyyy-mm-dd HH24:mi:ss') GROUP BY TO_CHAR (CHECKTIME, 'yyyy-mm-dd') ), tempCHECKFAIL AS ( SELECT TO_CHAR (QUERYTIME, 'yyyy-mm-dd') AS KEY, COUNT (IDENTITYCODE) VALUE FROM DIC_CHECKFAIL WHERE QUERYTIME >= TO_DATE (#{beginQuerytime} || ' 00:00:00', 'yyyy-mm-dd HH24:mi:ss') AND QUERYTIME <= TO_DATE (#{endQuerytime} || ' 23:59:59', 'yyyy-mm-dd HH24:mi:ss') GROUP BY TO_CHAR (QUERYTIME, 'yyyy-mm-dd') ) SELECT D.yearMonthDay year_Month_Day, NVL (T . VALUE, 0) check_Count, NVL (c. VALUE, 0) fail_Count FROM datesel D LEFT JOIN tempName T ON (D .yearMonthDay = T . KEY) LEFT JOIN tempCHECKFAIL c ON (D .yearMonthDay = c. KEY) ORDER BY yearMonthDay DESC