Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/07/2013, 11:23
ambichol
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 2 meses
Puntos: 5
Problemas Con Consulta Dinamica

hola, tengo un pequeño problema con una consulta dinamica que acabo de implementar, les comparto el codigo:
Código SQL:
Ver original
  1. DECLARE @cont INT
  2. DECLARE @sqlquery VARCHAR(1000)
  3. DECLARE @sqlquery2 VARCHAR(500)
  4. DECLARE @sqlquery3 VARCHAR(2000)
  5. DECLARE @anho VARCHAR(4)
  6.  
  7. SET nocount ON
  8.  
  9. DROP TABLE ti
  10.  
  11. SET @anho = (SELECT YEAR(getdate()))
  12. SET @cont = 1
  13. SET @sqlquery = ''
  14.  
  15. while @cont <= 12
  16. BEGIN
  17.  
  18. SET @sqlquery2 = '(a.['+@anho + RIGHT('00'+CAST(@cont AS VARCHAR),2)+']+b.['+@anho + RIGHT('00'+CAST(@cont AS VARCHAR),2)+']+c.['+@anho + RIGHT('00'+CAST(@cont AS VARCHAR),2)+']+d.['+@anho + RIGHT('00'+CAST(@cont AS VARCHAR),2)+']) as ['+@anho + RIGHT('00'+CAST(@cont AS VARCHAR),2)+'],'
  19. EXEC (@sqlquery2)
  20.  
  21. SET @sqlquery = @sqlquery + @sqlquery2
  22. EXEC (@sqlquery)
  23.  
  24. SET @Cont = @Cont + 1
  25. END
  26.  
  27. EXEC(@sqlquery)
  28.  
  29. SET @sqlquery3 = 'select a.gestion,'+@sqlquery+' '+quotename('GES08','''')+' as COD_GES into ti from Llamadas_Mensual_Oro_Final a inner join Llamadas_Mensual_plata_Final b on a.gestion = b.gestion inner join Llamadas_Mensual_Reten_Final c on b.gestion = c.gestion inner join Llamadas_Mensual_cable_Final d on c.gestion = d.gestion'
  30.  
  31. EXEC(@sqlquery3)
  32.  
  33. SET nocount off
  34.  
  35. SELECT * FROM ti

lo que sucede es que la consulta se ejecuta sin problemas(incluyendo dentro de un SP) pero al momento de ejecutarse, muestra mensajes de alerta(errores) indicando lo siguiente: Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'a'.
las veces que especifique en el contador.
la consulta seria como ocultar estos mensajes de alerta, ya que el query