Obter a diferença entre duas datas, tanto em meses e dias em sql

Preciso ter a diferença entre as duas datas, digamos que se a diferença for de 84 dias, provavelmente deveria ter saída como 2 meses e 14 dias, o código que acabo de dar é o total. Aqui está o código

SELECT Months_between(To_date('20120325', 'YYYYMMDD'),
       To_date('20120101', 'YYYYMMDD'))
       num_months,
       ( To_date('20120325', 'YYYYMMDD') - To_date('20120101', 'YYYYMMDD') )
       diff_in_days
FROM   dual; 

A saída é:

NUM_MONTHS    DIFF_IN_DAYS
2.774193548       84

Eu preciso, por exemplo, que a saída para essa consulta seja de 2 meses e 14 dias, na pior das hipóteses, senão não me importo se puder ter os dias exatos após os meses, porque esses dias não são realmente 14 porque todos os meses não têm 30 dias.

questionAnswers(10)

yourAnswerToTheQuestion