Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

transact query

Estas en el tema de transact query en el foro de SQL Server en Foros del Web. Hola buen dia. NO se como aplicar un loop en un query que realice @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original DECLARE @TOTALF1 AS INT   ...
  #1 (permalink)  
Antiguo 10/10/2013, 17:07
 
Fecha de Ingreso: mayo-2012
Mensajes: 18
Antigüedad: 11 años, 11 meses
Puntos: 0
transact query

Hola buen dia.
NO se como aplicar un loop en un query que realice

Código SQL:
Ver original
  1. DECLARE @TOTALF1 AS INT
  2.  
  3. --seccion destacada
  4. DECLARE @REGION AS VARCHAR(2)
  5. SET @REGION = 'SE'
  6. --- ------------
  7.  
  8.  
  9. --AQUI UNICAMENTE ME DA LOS RESULTADOS DE 'SE'
  10. -- SI QUIERO QUE ME HAGA LO MISMO CON OTRO INDICADOR COMO 'AA' O 'SA'
  11. -- SIN QUE TENGA QUE PONER TODO EL CODIGO Y CAMBIAR LA LETRA
  12. --ME PUEDEN AYUDAR
  13.  
  14.  
  15. DECLARE @FASE AS VARCHAR(1)
  16. SET @FASE = '1'
  17.  
  18.  
  19. SELECT   @TOTALF1 = COUNT(C.[Nombre RH])
  20. FROM S_VW_Cursos A
  21. INNER JOIN COURSE_USERS B ON B.CRSMAIN_PK1 = A.PK1
  22. INNER JOIN S_VW_Usuarios C ON C.PK1 = B.USERS_PK1
  23. INNER JOIN GRADEBOOK_MAIN D ON D.CRSMAIN_PK1 = A.PK1
  24. INNER JOIN GRADEBOOK_GRADE E ON E.GRADEBOOK_MAIN_PK1 = D.PK1 AND E.COURSE_USERS_PK1 = B.PK1
  25. INNER JOIN ATTEMPT F ON F.PK1 = E.HIGHEST_ATTEMPT_PK1
  26. WHERE D.Title = 'BAJA'
  27. AND B.ROLE = 'S'
  28. AND A.Clave LIKE '%EC-F'+@FASE+'-' + @REGION + '%'
  29. AND A.Clave NOT LIKE '%PDC%'
  30. AND A.Clave NOT LIKE '%PT%'
  31. -
  32.  
  33. SELECT 'REGION ' AS [TOTAL DE INGRESO F1]+ @TOTALF1 AS [TOTAL DE INGRESO F1]
  34. , ((@TOTALF1 * 100) / @TOTALF1 ) AS [% DE EFICIENCIA F1]
-- SI QUIERO QUE ME HAGA LO MISMO CON OTRO INDICADOR COMO 'AA' O 'SA'
-- SIN QUE TENGA QUE PONER TODO EL CODIGO Y CAMBIAR LA LETRA
--ME PUEDEN AYUDAR
mUCHAS GRACIAS POR EL APOYO

Última edición por gnzsoloyo; 10/10/2013 a las 18:28
  #2 (permalink)  
Antiguo 10/10/2013, 20:11
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: transact query

hazlo un procedure que te reciba un valor algo asi

Código SQL:
Ver original
  1. CREATE PROCEDURE sp_testing (@region VARCHAR(20))
  2. AS
  3.  DECLARE @FASE AS VARCHAR(1)
  4. SET @FASE = '1'
  5.  
  6.  
  7. SELECT   @TOTALF1 = COUNT(C.[Nombre RH])
  8. FROM S_VW_Cursos A
  9. INNER JOIN COURSE_USERS B ON B.CRSMAIN_PK1 = A.PK1
  10. INNER JOIN S_VW_Usuarios C ON C.PK1 = B.USERS_PK1
  11. INNER JOIN GRADEBOOK_MAIN D ON D.CRSMAIN_PK1 = A.PK1
  12. INNER JOIN GRADEBOOK_GRADE E ON E.GRADEBOOK_MAIN_PK1 = D.PK1 AND E.COURSE_USERS_PK1 = B.PK1
  13. INNER JOIN ATTEMPT F ON F.PK1 = E.HIGHEST_ATTEMPT_PK1
  14. WHERE D.Title = 'BAJA'
  15. AND B.ROLE = 'S'
  16. AND A.Clave LIKE '%EC-F'+@FASE+'-' + @REGION + '%'
  17. AND A.Clave NOT LIKE '%PDC%'
  18. AND A.Clave NOT LIKE '%PT%'
  19. -
  20.  
  21. SELECT 'REGION ' AS [TOTAL DE INGRESO F1]+ @TOTALF1 AS [TOTAL DE INGRESO F1]
  22. , ((@TOTALF1 * 100) / @TOTALF1 ) AS [% DE EFICIENCIA F1]
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 11/10/2013, 08:40
 
Fecha de Ingreso: mayo-2012
Mensajes: 18
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: transact query

Hola muchas gracias por la respuesta pero no es lo que busco, te comento.
Tengo 9 diferentes claves en este caso tengo la busqueda por 'SE' pero si quiero hacer la busqueda a OC que es otra clave, es decir que en el mismo recordset que aparescan las 9 sin que yo le este cambiando la calave 'SE' a 'OC' y asi.
no se como hacer el loop en transact me ayudarian
Saludos

Código SQL:
Ver original
  1. DECLARE @TOTALF1 AS INT
  2.  
  3. --- Segmento destacado --------------
  4. DECLARE @REGION AS VARCHAR(2)
  5. SET @REGION = 'SE'
  6. --------------------------------------------
  7.  
  8. DECLARE @FASE AS VARCHAR(1)
  9. SET @FASE = '1'
  10. DECLARE @FASE2 AS VARCHAR(1)
  11. SET @FASE2 = '2'
  12. SELECT   @TOTALF1 = COUNT(C.[Nombre RH])
  13. FROM S_VW_Cursos A
  14. INNER JOIN COURSE_USERS B ON B.CRSMAIN_PK1 = A.PK1
  15. INNER JOIN S_VW_Usuarios C ON C.PK1 = B.USERS_PK1
  16. INNER JOIN GRADEBOOK_MAIN D ON D.CRSMAIN_PK1 = A.PK1
  17. INNER JOIN GRADEBOOK_GRADE E ON E.GRADEBOOK_MAIN_PK1 = D.PK1 AND E.COURSE_USERS_PK1 = B.PK1
  18. INNER JOIN ATTEMPT F ON F.PK1 = E.HIGHEST_ATTEMPT_PK1
  19. WHERE D.Title = 'BAJA'
  20. AND B.ROLE = 'S'
  21. AND A.Clave LIKE '%EC-F'+@FASE+'-' + @REGION + '%'
  22. AND A.Clave NOT LIKE '%PDC%'
  23. AND A.Clave NOT LIKE '%PT%'
  24. SELECT 'REGION ' + @REGION, @TOTALF1 AS [TOTAL DE INGRESO F1]

Última edición por gnzsoloyo; 11/10/2013 a las 09:39 Razón: Por favor, usar el Highlight "SQL" para hacer más comprensible el código... Y resaltar con comentarios, no con colores.
  #4 (permalink)  
Antiguo 11/10/2013, 11:54
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: transact query

puedes hacer algo como esto:

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

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 13/10/2013, 20:50
 
Fecha de Ingreso: mayo-2012
Mensajes: 18
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: transact query

HOla muchas gracias
pero no puedo arreglar estos errores
AYUDA por favor gracias



Msg 156, Level 15, State 1, Line 24
Sintaxis incorrecta cerca de la palabra clave 'FROM'.
Msg 156, Level 15, State 1, Line 28
Sintaxis incorrecta cerca de la palabra clave 'FROM'.
  #6 (permalink)  
Antiguo 13/10/2013, 21:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: transact query

Cita:
Iniciado por alberto_audi Ver Mensaje
HOla muchas gracias
pero no puedo arreglar estos errores
AYUDA por favor gracias



Msg 156, Level 15, State 1, Line 24
Sintaxis incorrecta cerca de la palabra clave 'FROM'.
Msg 156, Level 15, State 1, Line 28
Sintaxis incorrecta cerca de la palabra clave 'FROM'.
¿Y cuál se supone que es el código que finalmente usaste?

Supongo que te imaginarás que con ese mensaje de error, a menos que veamos el script, difícilmente podamos adivinar qué es lo que escribiste mal, para que te de un error de sintaxis...

Al menos postea las queries que disparan el problema, si no quieres postear todo el script.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 14/10/2013, 07:51
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: transact query

si usaste mi codigo el error esta aqui
Cita:
Iniciado por Libras Ver Mensaje
puedes hacer algo como esto:

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

saludos!
si usaste otro codigo la verdad quien sabe jejejeje
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 14/10/2013, 11:17
 
Fecha de Ingreso: mayo-2012
Mensajes: 18
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: transact query

Hola buen dia. Perdon por la conufucion
Me arroja el error siguiente:

Msg 156, Level 15, State 1, Line 30
Sintaxis incorrecta cerca de la palabra clave 'FROM'.

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

Última edición por gnzsoloyo; 14/10/2013 a las 11:56 Razón: Por favor, usar Highlight "SQL"
  #9 (permalink)  
Antiguo 14/10/2013, 11:27
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: transact query

select @REGION = valor FROM #temp where row=@x
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #10 (permalink)  
Antiguo 14/10/2013, 12:19
 
Fecha de Ingreso: mayo-2012
Mensajes: 18
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: transact query

Hola muchras gracias por la ayuda pero sigue mandandome en un error.
LO he corrgido pero tanto SA y SE me salen en 2 recoset diferentes
lo que quiero es que en la hora de correr mi query se posiscionen uno debajo de otro sin necesidad de crear una tabla.

Saludos
  #11 (permalink)  
Antiguo 14/10/2013, 12:31
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: transact query

Código SQL:
Ver original
  1. CREATE TABLE #temp2
  2. (
  3. region AS VARCHAR(MAX)
  4. TOTAl INT
  5. )
  6.  
  7.  
  8. CREATE TABLE #temp
  9. (
  10. ROW INT IDENTITY(1,1),
  11. valor VARCHAR(20)
  12. )
  13.  
  14.  
  15. INSERT INTO #temp VALUES ('SE')
  16. INSERT INTO #temp VALUES ('SA')
  17.  
  18. INSERT INTO #temp VALUES (N)
  19.  
  20.  
  21.  
  22.  
  23. DECLARE @FASE AS VARCHAR(1)
  24. SET @FASE = '1'
  25. DECLARE @FASE2 AS VARCHAR(1)
  26. SET @FASE2 = '2'
  27.  
  28. DECLARE @REGION AS VARCHAR(2)
  29. DECLARE @TOTALF1 AS INT
  30. DECLARE @x INT
  31.  SET @x=1
  32.  
  33. --while @x<=(select [B](count(*)[/B] from #temp)
  34. --debe de ser
  35. while @x<=(SELECT COUNT(*) FROM #temp)
  36. BEGIN
  37. --- Segmento destacado Aqui esta el error --------------
  38.  
  39. SET @REGION = valor FROM #temp WHERE ROW=@x
  40. --------------------------------------------
  41.  
  42. SELECT   @TOTALF1 = COUNT(C.[Nombre RH])
  43. FROM S_VW_Cursos A
  44. INNER JOIN COURSE_USERS B ON B.CRSMAIN_PK1 = A.PK1
  45. INNER JOIN S_VW_Usuarios C ON C.PK1 = B.USERS_PK1
  46. INNER JOIN GRADEBOOK_MAIN D ON D.CRSMAIN_PK1 = A.PK1
  47. INNER JOIN GRADEBOOK_GRADE E ON E.GRADEBOOK_MAIN_PK1 = D.PK1 AND E.COURSE_USERS_PK1 = B.PK1
  48. INNER JOIN ATTEMPT F ON F.PK1 = E.HIGHEST_ATTEMPT_PK1
  49. WHERE D.Title = 'BAJA'
  50. AND B.ROLE = 'S'
  51. AND A.Clave LIKE '%EC-F'+@FASE+'-' + @REGION + '%'
  52. AND A.Clave NOT LIKE '%PDC%'
  53. AND A.Clave NOT LIKE '%PT%'
  54. INSERT INTO #temp2
  55. SELECT 'REGION ' + @REGION, @TOTALF1 AS [TOTAL DE INGRESO F1]
  56. SET @x=@x+1
  57. END
  58.  
  59. SELECT * FROM #temp2
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #12 (permalink)  
Antiguo 14/10/2013, 17:44
 
Fecha de Ingreso: mayo-2012
Mensajes: 18
Antigüedad: 11 años, 11 meses
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
  #13 (permalink)  
Antiguo 14/10/2013, 18:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: transact query

Por favor, usa el Highligt "SQL" que verás en el combo correspondiente.
Facilita la lectura de los códigos.
Y no uses color para resaltar. Es innecesario, y en SQL se resalta usando comentarios. Es lo acostumbrado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 15/10/2013, 08:04
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: transact query

puedes usar

drop table #table_name o para que se vea mas profesional:

IF OBJECT_ID('tempdb..#table_name') IS NOT NULL DROP TABLE #table_name
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #15 (permalink)  
Antiguo 15/10/2013, 10:33
 
Fecha de Ingreso: mayo-2012
Mensajes: 18
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: transact query

--Por favor me sugieres algo
Código SQL:
Ver original
  1. CREATE TABLE #temp2
  2. (
  3. region AS VARCHAR(MAX)
  4. TOTAl INT
  5. )
  6. --Msg 156, Level 15, State 1, Line 1
  7. --Sintaxis incorrecta cerca de la palabra clave 'AS'.
  8. --Lo que hice fue quitar el AS y quitar total int ES que no se que hace --*total INT*
  9.  
  10.  
  11.  
  12. CREATE TABLE #temp
  13. (
  14. ROW INT IDENTITY(1,1),
  15. valor VARCHAR(20)
  16. )
  17. --------------------------------------------------------------------
  18.  
  19.  
  20. INSERT INTO #temp VALUES ('SE')
  21. INSERT INTO #temp VALUES ('SA')
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28. DECLARE @FASE AS VARCHAR(1)
  29. SET @FASE = '1'
  30. DECLARE @FASE2 AS VARCHAR(1)
  31. SET @FASE2 = '2'
  32.  
  33. DECLARE @REGION AS VARCHAR(2)
  34. DECLARE @TOTALF1 AS INT
  35. DECLARE @x INT
  36.  SET @x=1
  37.  
  38. --while @x<=(select [B](count(*)[/B] from #temp)
  39. --debe de ser
  40. while @x<=(SELECT COUNT(*) FROM #temp)
  41. BEGIN
  42. --- Segmento destacado  --------------
  43.  
  44. SELECT @REGION = valor FROM #temp WHERE ROW=@x
  45. --------------------------------------------
  46.  
  47. SELECT   @TOTALF1 = COUNT(C.[Nombre RH])
  48. FROM S_VW_Cursos A
  49. INNER JOIN COURSE_USERS B ON B.CRSMAIN_PK1 = A.PK1
  50. INNER JOIN S_VW_Usuarios C ON C.PK1 = B.USERS_PK1
  51. INNER JOIN GRADEBOOK_MAIN D ON D.CRSMAIN_PK1 = A.PK1
  52. INNER JOIN GRADEBOOK_GRADE E ON E.GRADEBOOK_MAIN_PK1 = D.PK1 AND E.COURSE_USERS_PK1 = B.PK1
  53. INNER JOIN ATTEMPT F ON F.PK1 = E.HIGHEST_ATTEMPT_PK1
  54. WHERE D.Title = 'BAJA'
  55. AND B.ROLE = 'S'
  56. AND A.Clave LIKE '%EC-F'+@FASE+'-' + @REGION + '%'
  57. AND A.Clave NOT LIKE '%PDC%'
  58. AND A.Clave NOT LIKE '%PT%'
  59. --Msg 213, Level 16, State 1, Line 55
  60. --El nombre de columna o los valores especificados no corresponden a la definición de la tabla.
  61. --Este error me produce conficion al parecer todo esta bien
  62. INSERT INTO #temp2
  63. SELECT 'REGION ' + @REGION, @TOTALF1 AS [TOTAL DE INGRESO F1]
  64. SET @x=@x+1
  65. END
  66.  
  67. SELECT * FROM #temp2

Última edición por gnzsoloyo; 15/10/2013 a las 10:35 Razón: Usar Highlight "SQL", por favor...
  #16 (permalink)  
Antiguo 15/10/2013, 10:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: transact query

@alberto_audi: Por favor, usa el Highligt "SQL" que verás en el combo correspondiente.
Ayuda a leer mejor el código que posteas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #17 (permalink)  
Antiguo 15/10/2013, 10:37
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: transact query

Código SQL:
Ver original
  1. CREATE TABLE #temp2
  2. (
  3. region VARCHAR(MAX)
  4. TOTAl INT
  5. )
  6. --Porque quitas el total??? en tu resultado usas 2 columnas no?? una que lleva la region y otro que lleva un total o algo asi(TOTAL DE INGRESO F1)
  7.  
  8.  
  9. --Msg 213, Level 16, State 1, Line 55
  10. --El nombre de columna o los valores especificados no corresponden a la definición de la tabla.
  11. --Este error me produce conficion al parecer todo esta bien
  12. INSERT INTO #temp2
  13. SELECT 'REGION ' + @REGION, @TOTALF1 AS [TOTAL DE INGRESO F1]
El error te lo marca porque quitaste un campo y quieres ingresar 2 a la tabla.....dejando el campo total(o el nombre que quieras) el query funciona :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #18 (permalink)  
Antiguo 15/10/2013, 11:10
 
Fecha de Ingreso: mayo-2012
Mensajes: 18
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: transact query

probe de todas las formas
Código SQL:
Ver original
  1. CREATE TABLE #temp2
  2.  
  3. (
  4. region VARCHAR(MAX)
  5. totalf1  VARCHAR
  6. )
  7.  
  8. Tambien
  9.  
  10. CREATE TABLE #temp2
  11. (
  12. region VARCHAR(MAX)
  13. totalf1  INT
  14. )
--Msg 102, Level 15, State 1, Line 4
--Sintaxis incorrecta cerca de 'totalf1'.

--JAJAJAJA me falto una coma perdon

Última edición por alberto_audi; 15/10/2013 a las 11:24
  #19 (permalink)  
Antiguo 15/10/2013, 11:26
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: transact query

y no probaste de esta forma:

Código SQL:
Ver original
  1. CREATE TABLE #temp2
  2.  
  3. (
  4. region VARCHAR(MAX),
  5. totalf1  VARCHAR
  6. )
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: query, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:42.