Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/10/2004, 14:06
Avatar de RsOfT
RsOfT
 
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 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--