2013-07-01 3 views
0

Если я хочу получить данные между March 2013 до November (за каждый месяц все ежедневные данные должны быть суммированы для получения ежемесячных данных), я думал, что я сделал правильно , Но это дает мне 186 rows (все даты от March до November) результата вместо того, чтобы давать всего 9 (9 месяцев между двумя).Получите данные между двумя месяцами в ibatis

По какой-то причине я получаю только 1 данных для November.

Может ли это исправить?

SELECT 
    TO_CHAR (TO_DATE ('201305','YYYYMM')+LEVEL- 1, 'YYYYMM') AS MONTH 
     FROM DUAL 
     CONNECT BY TO_DATE('201305', 'YYYYMM') + LEVEL - 1 <= TO_DATE('201311', 'YYYYMM') 

ответ

1

Это то, что вы хотите?

SELECT TO_CHAR(ADD_MONTHS(TO_DATE('201303','YYYYMM'),LEVEL-1), 'YYYYMM') AS Month 
    FROM DUAL 
CONNECT BY ADD_MONTHS(TO_DATE('201303','YYYYMM'),LEVEL-1) <= TO_DATE('201311', 'YYYYMM'); 

Выход:

Month 
------- 
201303 
201304 
201305 
201306 
201307 
201308 
201309 
201310 
201311