25/10/2004, 14:06
|
| | | Fecha de Ingreso: marzo-2002 Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 8 meses Puntos: 7 | |
Como dices no me funciona. Me da error en las varibles @Mes, @Ano y @Total
Mira como lo estoy haciendo?
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 @SQL varchar(800)
Declare Produccion Insensitive Cursor For
Select Parent, Name, MAKTX From OpenQuery(SAP,'SELECT Distinct Mcshierb.Parent, Mcshierb.Name, Makt.MAKTX FROM Mcshierb, Makt
WHERE Mcshierb.Appl = ''MCS''
AND Mcshierb.Hname = ''CLAS-MAT01''
AND Mcshierb.MANDT = 400
AND (Mcshierb.PARENT = 14 OR Mcshierb.PARENT = 15 OR Mcshierb.PARENT = 16 OR Mcshierb.PARENT = 17)
AND Mcshierb.Name = MAKT.MATNR
AND Mcshierb.MANDT = MAKT.MANDT
AND MAKT.SPRAS = ''S''
')
Open Produccion
Fetch Next From Produccion Into
@Padre, @Cod_Material, @Descripcion
While (@@Fetch_Status <> -1)
Begin
select @SQL = '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)
'')'
EXEC (@SQL)
Select @Padre, @Cod_Material, @Descripcion, @Mes, @Ano, @Total
Fetch Next From Produccion Into
@Padre, @Cod_Material, @Descripcion
End
Close Produccion
Deallocate Produccion
Me tira el siguiente error: Server: Msg 137, Level 15, State 1, Line 1
Must declare the variable '@Mes'.
Luego de eso, declaré la variable asi:
Código:
select @SQL = '
Declare @Mes char(2)
Select @Mes = Mes 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)
'')'
Pero no me trae datos ya que SQL Server considera esa variable independiente de la otra.
La pregunta es: Cómo puedo poner en una variable el resultado del Select que se ha ejecutado de la variable @SQL?
__________________ .::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-- |