Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/10/2004, 12:09
Avatar de RsOfT
RsOfT
 
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 8 meses
Puntos: 7
Pasar Variable como parmametro en un cursor

Estoy haciendo lo siguiente:
Código:
Declare @Padre varchar(6)
Declare @Cod_Material varchar(18)
Declare @Descripcion varchar(40)
Declare @Ano int
Declare @Mes char(2)
Declare @Total float

Declare Produccion Insensitive Cursor For
Select Padre, Cod_Material, Descripcion from #Produccion

Open Produccion
Fetch Next From Produccion Into
@Padre, @Cod_Material, @Descripcion

While (@@Fetch_Status <> -1)
Begin
	Select @Mes = Mes, @Ano = Ano, @Total = Total from OpenQuery(SAP,'
	SELECT SUBSTR(Sptag,5,2) as Mes, SUBSTR(Sptag,1,4) as Ano, sum(WEMNG) AS total
	FROM S021 
	WHERE 	MANDT = 400
		And ( Sptag >= ''20040801'' And Sptag <= ''20040831'' )
		And MATNR = ''000000000000002123''
	GROUP BY SUBSTR(Sptag,5,2), SUBSTR(Sptag,1,4)
	')

	Select  @Padre, @Cod_Material, @Descripcion, @Mes, @Ano, @Total

	Fetch Next From Produccion Into
	@Padre, @Cod_Material, @Descripcion
End
Close Produccion
Deallocate Produccion
Lo probé y funciona perfectamente bien, pero lo hice así para percatarme que funciona y le puse el código del material "000000000000002123" de forma fija, ahora quiero ponerlo de forma dinámira en una variable e hice lo siguiente:

Código:
Declare @Padre varchar(6)
Declare @Cod_Material varchar(18)
Declare @Descripcion varchar(40)
Declare @Ano int
Declare @Mes char(2)
Declare @Total float

Declare Produccion Insensitive Cursor For
Select Padre, Cod_Material, Descripcion from #Produccion

Open Produccion
Fetch Next From Produccion Into
@Padre, @Cod_Material, @Descripcion

While (@@Fetch_Status <> -1)
Begin
	Select @Mes = Mes, @Ano = Ano, @Total = Total from OpenQuery(SAP,'
	SELECT SUBSTR(Sptag,5,2) as Mes, SUBSTR(Sptag,1,4) as Ano, sum(WEMNG) AS total
	FROM S021 
	WHERE 	MANDT = 400
		And ( Sptag >= ''20040801'' And Sptag <= ''20040831'' )
		And MATNR = ''' + @Cod_Material +  '''
	GROUP BY SUBSTR(Sptag,5,2), SUBSTR(Sptag,1,4)
	')

	Select  @Padre, @Cod_Material, @Descripcion, @Mes, @Ano, @Total

	Fetch Next From Produccion Into
	@Padre, @Cod_Material, @Descripcion
End
Close Produccion
Deallocate Produccion
Pero me da el siguiente error:
Server: Msg 170, Level 15, State 1, Line 22
Line 22: Incorrect syntax near '+'.

Probé colocandolo asi, con una sola comillita: ' + @Cod_Material + ' y me da el mismo error.

Que estoy haciendo mal?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--