rangos de fecha de distintos meses

tema enviado por kaai en ORACLE
tema iniciado el 06/03/2013
Tengo un pequeño problema. Necesito un reporte que muestre informacion a la fecha en que se corra el reporte, es decir, si yo, corró el reporte a la fecha de 06 febrero 2013, me tiene que traer informacion del rango de fechas de enero2013, diciembre2013,n meses hacia atras de la fecha actual. Para los rangos de fecha, estoy usando las siguientes lineas: where TO_DATE(to_char(mmt.transaction_date, 'dd-mon-yyyy')) >= trunc(add_months(sysdate, -1), 'mon') and TO_DATE(to_char(mmt.transaction_date, 'dd-mon-yyyy')) < last_day(trunc(add_months(sysdate, -1), 'mon')) esas lineas anteriores dan informacion con fecha situada entre febrero 2013, conforme valla restando numeros. El problema es, por cada mes tengo hacer una cosulta, y eso hace que la consulta se agrande demaciado. Habrá una forma en la que pueda solucionar mi problema, en que los rangos de fechas sean de forma automatica y no tener que usar tantas consultas para cada rango de fechas