Nombres Dinamicos en Columnas

30/12/2004 - 22:54 por Jose S. | Informe spam
Se puede nombrar una columna de un Select de forma dinamica ?

es decir en un caso como el siguiente :

CREATE PROCEDURE pLotes @EmpresaID Int,@Ejercicio Int
AS
SELECT Lotes.CodigoInterno as [Codigo Lote],Lotes.Fecha as [Fecha Entrada],
sum(case when year(AH.fecha) =@Ejercicio then AH.Piezas else 0 end)
as [Año Actual],
sum(case when year(AH.Fecha) =@Ejercicio-1 then AH.Piezas else 0 end)
as [Año -1],
sum(case when year(AH.Fecha) =@Ejercicio-2 then AH.Piezas else 0 end)
as [Año -2],
sum(case when year(AH.Fecha) =@Ejercicio-3 then AH.Piezas else 0 end)
as [Año -3],
sum(AH.Piezas) as Total
from AlmacenesHistorico AH
Left Outer Join Lotes On LotesID=LoteID
where MovimientoTipoID€ AND Lotes.EmpresaID=@EmpresaID
group by Lotes.Fecha,Lotes.CodigoInterno
Order by Lotes.Fecha

/*******************

lo que yo pretendo es que el nombre de la columna donde ahora tengo [Año
Actual] ...[Año -1] etc, me devuelva el texto de la variable Ejercicio tal
como 2004,
2005 etc. es decir una salida del tipo

Codigo Lote Fecha Entrada 2004 2003 2002 2001
xxxxxxxxx xx/yy/zzzz xxxx xxxx xxxx
xxxx


Saludos.
 

Leer las respuestas

#1 Maxi
30/12/2004 - 23:05 | Informe spam
Hola, para eso deberias usar Sql-dinamico (sp_executesql) con todos los
problemas que esto lleva no.

Sino la otra opcion es que tu aplicacion interprete esto y lo transforme.

Un abrazo


Salu2
Maxi


"Jose S." escribió en el mensaje
news:
Se puede nombrar una columna de un Select de forma dinamica ?

es decir en un caso como el siguiente :

CREATE PROCEDURE pLotes @EmpresaID Int,@Ejercicio Int
AS
SELECT Lotes.CodigoInterno as [Codigo Lote],Lotes.Fecha as [Fecha
Entrada],
sum(case when year(AH.fecha) =@Ejercicio then AH.Piezas else 0
end)
as [Año Actual],
sum(case when year(AH.Fecha) =@Ejercicio-1 then AH.Piezas else 0 end)
as [Año -1],
sum(case when year(AH.Fecha) =@Ejercicio-2 then AH.Piezas else 0 end)
as [Año -2],
sum(case when year(AH.Fecha) =@Ejercicio-3 then AH.Piezas else 0 end)
as [Año -3],
sum(AH.Piezas) as Total
from AlmacenesHistorico AH
Left Outer Join Lotes On LotesID=LoteID
where MovimientoTipoID€ AND Lotes.EmpresaID=@EmpresaID
group by Lotes.Fecha,Lotes.CodigoInterno
Order by Lotes.Fecha

/*******************

lo que yo pretendo es que el nombre de la columna donde ahora tengo [Año
Actual] ...[Año -1] etc, me devuelva el texto de la variable Ejercicio
tal
como 2004,
2005 etc. es decir una salida del tipo

Codigo Lote Fecha Entrada 2004 2003 2002 2001
xxxxxxxxx xx/yy/zzzz xxxx xxxx xxxx
xxxx


Saludos.


Preguntas similares