Estoy intentando devolver algunos resultados extienden por un periodo continuo de 12 meses por ejemplo:SQL Resultados grupo por mes
MONTH IN OUT
January 210 191
February 200 111
March 132 141
April 112 141
May 191 188
etc...
¿Cómo difundir los resultados sobre un intervalo de fechas, poblando la primera columna con el mes ¿nombre?
EN MSSQL sería algo así como:
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);
Pero esto va en contra de una base de datos Oracle para DATEPART y DateTime no están disponibles.
Mi mesa problema es más o menos:
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
Me golpearon por 30 segundos! –
¿Por qué no podemos usar 'group by mon_year'? MySQL permite el uso del nombre de columna alias en cláusula de grupo. –
@Scott Chu: Oracle no permite el uso de alias de columna en la cláusula Grupo. Debe hacer coincidir manualmente la expresión utilizada en la columna. El kilometraje puede variar con otros DB. – ZeroK