22/10/2004, 12:09
|
| | | 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-- |