SQL Server - filtro concatena

 
Vista:

filtro concatena

Publicado por [email protected] (23 intervenciones) el 15/12/2006 16:39:09
Hola amigo gracias estoy funciona muy bien....................... pero provando me sale un problema : estas tabla fmst+año tiene un campo grupo nvarchar(4) en el cual guardo IMA , MED, CLI, ETC y otro campo "idelt nvarchar(1)" donde guardo blanco '' o 'D' q indica q se ilimino deleteado en mi procedimiento hago un filtro del siguiente manera
CREATE PROCEDURE EJEMPLO1
@AÑO NVARCHAR(4)
as
DECLARE @sentencia NVARCHAR(25)
set @sentencia = 'SELECT * FROM FMST' + @AÑO+' where grupo = IMA AND Iidelt <> D ;'
exec sp_executesql @sentencia
GO
me vota error
El nombre de columna 'IMA' no es válido. del mismo modo con la D

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lo realice enviano los parametros

CREATE PROCEDURE EJEMPLO1
@AÑO NVARCHAR(4) , @GRUPO NVARCHAR(3), @D NVARCHAR(1)
as
DECLARE @sentencia NVARCHAR(25)
set @sentencia = 'SELECT * FROM FMST' + @AÑO+' where grupo = ' + @GRUPO+' AND Iidelt <> ' + @D+' ;'
exec sp_executesql @sentencia
GO

Y me vota igual manera error
El nombre de columna 'IMA' no es válido. del mismo modo con la D
como podria realizar estos filtros
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

RE:filtro concatena

Publicado por Isaías (3308 intervenciones) el 15/12/2006 18:47:42
Si no colocas tus valores entre apostrofes, lo toma como nombre de columnas.

DECLARE @sentencia NVARCHAR(25)
set @sentencia = 'SELECT * FROM FMST' + @AÑO+' where grupo = ''IMA'' AND Iidelt <> ''D'' ;'
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:filtro concatena

Publicado por beto_22 (23 intervenciones) el 19/12/2006 19:36:35
hola amigo:
espero no molestarte pero tengo un nuevo problema y la verdad q lo ataco por todo lado y no funciona, deso hacer una busquedad secuencial por el campo DESCP Y POR EL CODT Q ES UN CODIGO y no funciona esto lo hacia muy bien de esta manera.

select * from DBO.FMST2005 WHERE DESCP LIKE @DOC1 + '%'
select * from DBO.FMST2005 WHERE CODT LIKE @DOC1 + '%'

CLARO CUANDO a LA TABLA fmst 2005 no tenia q concatenar el año

pero ahora no funciona

CREATE PROCEDURE PROGRILLAPRO
(@tabla nvarchar(8), @DOC1 nvarchar(90) )
DECLARE @sentencia NVARCHAR(25)
set @sentencia = 'SELECT * FROM FMST' + @AÑO+' where grupo = ''IMA'' AND Iidelt <> ''D'' and DESCP LIKE '+@DOC1+' + '%' ;'

bueno eso es todo gracias desde ya
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