SQL - 12 ultimos meses dinamico y en columnas

 
Vista:

12 ultimos meses dinamico y en columnas

Publicado por pamela (4 intervenciones) el 18/03/2015 02:50:48
Hola,

Necesito ayuda para hacer una query que muestre los 12 ultimos meses de forma dinamica y en columnas, por el momento tengo una query pero agregando las fechas manualmente :( ... Uso SQL 2008 (free version)
Tambien necesito que la columna quede con el nombre del mes correspondiente y no como "4 meses atras por ej"

Les agradezco de antemano.
Esta es la query actual:

select DevID,
sum(Case when D.[Month]= '3' and D.[Year]='2014' then volumes end) as Mar14 ,
sum(Case when D.[Month]= '4' and D.[Year]='2014' then volumes end) as Apr14 ,
sum(Case when D.[Month]= '5' and D.[Year]='2014' then volumes end) as May14 ,
sum(Case when D.[Month]= '6' and D.[Year]='2014' then volumes end) as Jun14,
sum(Case when D.[Month]= '7' and D.[Year]='2014' then volumes end) as Jul14 ,
sum(Case when D.[Month]= '8' and D.[Year]='2014' then volumes end) as Aug14 ,
sum(Case when D.[Month]= '9' and D.[Year]='2014' then volumes end) as Sept14 ,
sum(Case when D.[Month]= '10' and D.[Year]='2014' then volumes end) as Oct14 ,
sum(Case when D.[Month]= '11' and D.[Year]='2014' then volumes end) as Nov14 ,
sum(Case when D.[Month]= '12' and D.[Year]='2014' then volumes end) as Dec14 ,
sum(Case when D.[Month]= '1' and D.[Year]='2015' then volumes end) as Jan15 ,
sum(Case when D.[Month]= '2' and D.[Year]='2015' then volumes end) as Feb15 ,
sum(Case when D.[Month]= '3' and D.[Year]='2015' then volumes end) as Mar15
from Total_Volumes D
group by DeviceID
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

12 ultimos meses dinamico y en columnas

Publicado por leonardo_josue (1173 intervenciones) el 19/03/2015 17:08:46
Hola pamela:

Vayamos por partes, en primer lugar dices esto:

1
... Uso SQL 2008 (free version) ...

SQL 2008 no existe, no es un Motor de Base de Datos... tal vez te refieras a SQL Server 2008 (en cuyo caso no existe una Free version, sino una Express Edition)...

Lo que quieres hacer, sólo se puede lograr mediante SP, y como dices, armar de manera "dinámica" tu consulta y después ejecutarla... En SQL Server puedes utilizar el SP sp_executesql, sin embargo no estoy seguro de que la versión Express lo tenga habilitado. Checa esta liga:

https://technet.microsoft.com/es-es/library/ms188001(v=sql.105).aspx

haz la prueba y nos comentas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

12 ultimos meses dinamico y en columnas

Publicado por Pamela (4 intervenciones) el 01/04/2015 06:45:32
Muchas Gracias Leo,

cambio el requerimiento asi es que por el momento no seguire tratando de resolver esto.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar