Ver Mensaje Individual
  #12 (permalink)  
Antiguo 14/10/2013, 17:44
alberto_audi
 
Fecha de Ingreso: mayo-2012
Mensajes: 18
Antigüedad: 12 años
Puntos: 0
Respuesta: transact query

HOla muchas gracias por el aporte, muy interesante la creacion de una tabla temporal no se me habia ocurrido.
Voy a complementar mi query y despues te lo muestro completo.
Solo tengo una duda como puedo limpiar una tabla temporal es decir que despues de ejecutarse tengo que volver a ejecutarlo sin las 2 lineas que marco en rojo.
Lo que pasa es que me estan marcando el error que ya existen estas tablas

y que no se me amontonen mis datos

Código SQL:
Ver original
  1. ----------------------- Bloque resaltado ------------------------
  2. CREATE TABLE #temp2
  3. (
  4. region AS VARCHAR(MAX)
  5. TOTAl INT
  6. )
  7.  
  8.  
  9. CREATE TABLE #temp
  10. (
  11. ROW INT IDENTITY(1,1),
  12. valor VARCHAR(20)
  13. )
  14. --------------------------------------------------------------------
  15.  
  16.  
  17. INSERT INTO #temp VALUES ('SE')
  18. INSERT INTO #temp VALUES ('SA')
  19.  
  20. INSERT INTO #temp VALUES (N)
  21.  
  22.  
  23.  
  24.  
  25. DECLARE @FASE AS VARCHAR(1)
  26. SET @FASE = '1'
  27. DECLARE @FASE2 AS VARCHAR(1)
  28. SET @FASE2 = '2'
  29.  
  30. DECLARE @REGION AS VARCHAR(2)
  31. DECLARE @TOTALF1 AS INT
  32. DECLARE @x INT
  33.  SET @x=1
  34.  
  35. --while @x<=(select [B](count(*)[/B] from #temp)
  36. --debe de ser
  37. while @x<=(SELECT COUNT(*) FROM #temp)
  38. BEGIN
  39. --- Segmento destacado Aqui esta el error --------------
  40.  
  41. SET @REGION = valor FROM #temp WHERE ROW=@x
  42. --------------------------------------------
  43.  
  44. SELECT   @TOTALF1 = COUNT(C.[Nombre RH])
  45. FROM S_VW_Cursos A
  46. INNER JOIN COURSE_USERS B ON B.CRSMAIN_PK1 = A.PK1
  47. INNER JOIN S_VW_Usuarios C ON C.PK1 = B.USERS_PK1
  48. INNER JOIN GRADEBOOK_MAIN D ON D.CRSMAIN_PK1 = A.PK1
  49. INNER JOIN GRADEBOOK_GRADE E ON E.GRADEBOOK_MAIN_PK1 = D.PK1 AND E.COURSE_USERS_PK1 = B.PK1
  50. INNER JOIN ATTEMPT F ON F.PK1 = E.HIGHEST_ATTEMPT_PK1
  51. WHERE D.Title = 'BAJA'
  52. AND B.ROLE = 'S'
  53. AND A.Clave LIKE '%EC-F'+@FASE+'-' + @REGION + '%'
  54. AND A.Clave NOT LIKE '%PDC%'
  55. AND A.Clave NOT LIKE '%PT%'
  56. INSERT INTO #temp2
  57. SELECT 'REGION ' + @REGION, @TOTALF1 AS [TOTAL DE INGRESO F1]
  58. SET @x=@x+1
  59. END
  60.  
  61. SELECT * FROM #temp2


Muchas gracias saludos

Última edición por gnzsoloyo; 14/10/2013 a las 18:52