SQL Server - Where IN

   
Vista:

Where IN

Publicado por barca1010 (3 intervenciones) el 22/10/2009 16:51:53
Buenas tardes:

Espero que alguien me pueda ayudar, tengo un procedimiento almacenado con una variable de entrada, el problema está cuando esa variable tiene mas de un valor, me explico mejor.

El procedimiento sería algo parecido a esto:

@A nvarchar(max),

la select original es esta:
select * from TABLA where CAMPO = (@A)

pero ahora me han pedido que puedan pasar mas de un valor, pensé que cambiando el = por un IN funcionaría, pero no es así.

select * from TABLA where CAMPO in (@A)

alguien me puede ayudar por favor.
Gracias
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
Imágen de perfil de Isaias

RE:Where IN

Publicado por Isaias (3182 intervenciones) el 22/10/2009 19:09:54
Deberias ocupar QUERY DINAMICO, con sus pro y contras

/*
declare @A nvarchar(max)
declare @sqlstring nvarchar(100)

set @sqlstring = 'select * from TABLA where CAMPO in (' + @A ')'
exec sp_executesql @sqlstring
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

RE:Where IN

Publicado por barca1010 (3 intervenciones) el 26/10/2009 16:16:31
Muchas gracias Isaias, ahora tengo otro problema. Este procedimiento lo utilizo para ejecutar un informe en crystal report, hasta ahí todo va bien, el problema está cuando ejecuto la web de la intranet, que utilizo para mostrar los informes, me aparece el siguiente mensaje:

Error del motor de consulta: '42000:[Microsoft][SQL Native Client][SQL Server]Incorrect syntax near 'BBDD'.' Error del motor de consulta: '42000:[Microsoft][SQL Native Client][SQL Server]Incorrect syntax near ','.' Error en el archivo

no entiendo porque si funciona desde el crystal report y no desde visual studio 2005.

Otra vez, muchas gracias
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
Imágen de perfil de Isaias

RE:Where IN

Publicado por Isaias (3182 intervenciones) el 26/10/2009 18:19:42
Procura de pasar las variables de la misma forma, de lo contrario, tendras problemas al CONCATENAR toda la cadena y ejecutarla
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

RE:Where IN

Publicado por Carlos Esquivel (1 intervención) el 29/01/2010 17:52:39
Saludos Amigos.

Yo también tuve el mismo mensaje, lo solucione de la siguiente manera en el formulario del reporte deshabilte el
If Not Page.IsPostBack Then
y eso era todo

Utilizando VS 2005 CrystalReport, SQL 2005 con un procedimiento almacenado que recibe parametros ademas con la instruccion IN ('aa','b'').

"Error de motor de consulta: 'C:\DOCUME~1\STAR\ASPNET\CONFIG~1\Temp\temp_69017b2c-da1f-4747-8f5d-70b4576f7e7b.rpt'"
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