PDA

Ver la Versión Completa : Pasar parametro como campo en un SP


lgarcia
04-03-2010, 16:09:19
Hola:

Trabajo con MS SQL Server 2000 y tengo la siguiente problematica, tengo una tabla que tiene el plan de los diferentes meses del año y los nombres de los campos corresponden con los meses del año. Necesito por ejemplo hacer una consulta como esta:


SELECT nombre, Enero
FROM dbo.Ingresos


para que me de el valor correspondiente al mes de enero, como yo podria pasar un parametro que me sustituyera el nombre del campo. Por ejemplo


DECLARE @valor char(12)
SET @valor = 'Enero'

SELECT nombre, @valor
FROM dbo.Ingresos


Para de esta forma solo pasarle como parametro el nombre del campo y me devuelva el plan de ese mes en especifico. No se si me he hecho entender.

Saludos
Luis Garcia

delphi.com.ar
04-03-2010, 16:31:33
Puedes hacerlo mediante el uso de Sql Dinámico. En los motores que compilan previamente el código de los stored procedures, no es recomendable por una cuestion de rendimiento, salvo que sea necesario. Te recomiendo ver la ayuda del stored procedure: "sp_executesql".


Saludos!

lgarcia
04-03-2010, 18:15:10
Muchas gracias por la respuesta Federico, voy a trabajar en esa via, yo en un proyecto anterior utilice un sql dinamico, pero no habia valorado esa posibilidad.

Saludos
Luis Garcia

sinalocarlos
05-03-2010, 02:02:20
En caso de que no se pudiese aplicar la opcion del sql dinamico, es probable que te sirva esta opcion:

SELECT nombre ,
CASE WHEN @valor = 'Enero' THEN Enero
WHEN @valor = 'Feb' THEN Febrero
WHEN @valor = 'Mar' THEN Marzo
WHEN @valor = 'Abr' THEN Abril
...
END AS Valor
FROM dbo.Ingresos

donde @valor es el parametro en cuestion

Saludos