DECLARE INGRESO CURSOR
FOR SELECT AC.CODIGO_DE_ACTIVO
, AC.DESCRIP_CORTA_ACTIVO
, AC.MEJORA_CORRELATIVO
, C.CAMPO_TITULO
, V.VALOR_CAMPO
FROM ACTIVOS_FIJOS AC
, ACT_CAMPOS_VAL V
, ACT_CAMPO C
, TIPOS_DE_ACTIVOS T
WHERE AC.CODIGO_DE_ACTIVO = V.CODIGO_DE_ACTIVO
AND C.CODIGO_TIPO_ACTIVO = T.CODIGO_TIPO_ACTIVO
AND AC.CODIGO_TIPO_ACTIVO = T.CODIGO_TIPO_ACTIVO
AND V.CAMPO_ID = C.CAMPO_ID
AND AC.CODIGO_DE_ACTIVO = LTRIM(RTRIM(@CODIGO_DE_ACTIVO ))
AND V.VALOR_CAMPO IS NOT NULL
AND V.MEJORA_CORRELATIVO = AC.MEJORA_CORRELATIVO
AND AC.MEJORA_CORRELATIVO IN (@MEJORA) -- VALIDAR SI ES CON MEJORA O TODAS LAS MEJORAS
ORDER BY AC.CODIGO_DE_ACTIVO
, AC.MEJORA_CORRELATIVO
OPEN INGRESO
FETCH INGRESO INTO @CODIGO_ACT, @DESCRIP_CORTA_ACTIVO, @MEJORA_CORRELATIVO ,@CAMPO_TITULO, @VALOR
DECLARE @AUX VARCHAR (3)
SELECT @AUX = @MEJORA_CORRELATIVO
WHILE (@@FETCH_STATUS =0)
BEGIN
SELECT @CONT = @CONT+ 1 --CONTADOR
SELECT @USER = suser_sname()
IF @AUX <> @MEJORA_CORRELATIVO
BEGIN
SELECT @CONT= 1
SELECT @AUX = @MEJORA_CORRELATIVO
END
SELECT @VAL = 'VALOR'+ CONVERT(VARCHAR,@CONT)
SELECT @TITULO = 'CAMPO_TITULO'+ CONVERT(VARCHAR,@CONT)
EXEC ('UPDATE #RTP_TIPOS_DE_ACTIVOS
SET '+ @TITULO + '='+''''+ @CAMPO_TITULO +''''
+', '+ @VAL + '='+''''+ @VALOR +''''
+'WHERE CODIGO_ACT ='+''''+ @CODIGO_ACT +''''
+ ' AND MEJORA ='+''''+ @MEJORA_CORRELATIVO +''''
+ ' AND USUARIO ='+''''+ @USER +''''
+'IF @@ROWCOUNT = 0
BEGIN
INSERT #RTP_TIPOS_DE_ACTIVOS
( USUARIO
, CODIGO_ACT
, MEJORA
, DESCRIP_CORTA_ACTIVO
, CAMPO_TITULO1
, VALOR1
)
SELECT '
+ ''''+ @USER + ''''
+ ',' + ''''+ @CODIGO_ACT + ''''
+ ',' + ''''+ @MEJORA_CORRELATIVO + ''''
+ ', '+ ''''+ @DESCRIP_CORTA_ACTIVO + ''''
+ ', '+ ''''+ @CAMPO_TITULO +''''
+ ', '+ ''''+ @VALOR +''''
+'END'
)
FETCH NEXT FROM INGRESO INTO @CODIGO_ACT, @DESCRIP_CORTA_ACTIVO , @MEJORA_CORRELATIVO ,@CAMPO_TITULO, @VALOR
END
CLOSE INGRESO
DEALLOCATE INGRESO