SELECT VENCIMENTO_REAL, SUM(VALOR) FROM ( SELECT ( TRUNC(SYSDATE) - ROWNUM ) VENCIMENTO_REAL, 0 valor FROM ALL_OBJECTS WHERE TO_CHAR( ( TRUNC(SYSDATE) - ROWNUM ), 'yyyymmdd' ) > '201406' union all SELECT TO_DATE(E2_VENCREA,'YYYYMMDD') VENCIMENTO_REAL, sum(e2_valor) valor FROM SE2020 SE2, SA2020 SA2 WHERE SA2.A2_COD = E2_FORNECE AND SA2.A2_LOJA = E2_LOJA AND SA2.A2_FILIAL = E2_FILIAL --atencao aqui AND SA2.D_E_L_E_T_ = ' ' AND SE2.E2_VENCREA BETWEEN '20140601' AND '20140613' AND SE2.D_E_L_E_T_ = ' ' GROUP BY TO_DATE(E2_VENCREA,'YYYYMMDD') ) VIRTUAL GROUP BY VENCIMENTO_REAL order by 1 Costumo fazer estas coisas com um union "zerado"