Groupe de résultats SQL par mois

Je suis en train de retourner des résultats, réparties sur une période de 12 mois courante par exemple:

MONTH       IN   OUT
January    210    191
February   200    111
March      132    141
April      112    141
May        191    188 
etc...

Comment puis-je répandre les résultats sur une plage de dates, le remplissage de la première colonne avec le nom du mois?

DANS MSSQL il serait quelque chose comme:

SELECT  COUNT(problem.problem_type = 'IN') AS IN, 
    COUNT(problem.problem_type = 'OUT') AS OUT, 
    DATEPART(year, DateTime) as Year,
    DATEPART(month, DateTime) as Month
FROM problem
WHERE   (DateTime >= dbo.FormatDateTime('2010-01-01')) 
    AND 
    (DateTime < dbo.FormatDateTime('2010-01-31'))
GROUP BY DATEPART(year, DateTime),
    DATEPART(month, DateTime);

Mais c'est à l'encontre d'une base de données Oracle afin de DATEPART et DateTime ne sont pas disponibles.

Ma table de Problème est à peu près de:

problem_ID Problem_type   IN_Date                     OUT_Date
   1           IN        2010-01-23 16:34:29.0       2010-02-29 13:06:28.0
   2           IN        2010-01-27 12:34:29.0       2010-01-29 12:01:28.0
   3           OUT       2010-02-13 13:24:29.0       2010-09-29 15:04:28.0
   4           OUT       2010-02-15 16:31:29.0       2010-07-29 11:03:28.0

source d'informationauteur madlan