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

procedimiento que devuelve un bucle

Estas en el tema de procedimiento que devuelve un bucle en el foro de SQL Server en Foros del Web. Hola, Tengo este procedimiento: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original BEGIN     SET NOCOUNT ON     DECLARE @y INT     SET @y ...
  #1 (permalink)  
Antiguo 25/10/2011, 03:46
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
procedimiento que devuelve un bucle

Hola,
Tengo este procedimiento:
Código SQL:
Ver original
  1. BEGIN
  2.     SET NOCOUNT ON
  3.     DECLARE @y INT
  4.     SET @y=2001
  5.     WHILE(@y<=YEAR(GETDATE()))
  6.     BEGIN
  7.         SELECT @y AS _year
  8.         SET @y=@y+1
  9.     END
  10. END
Y cuando lo ejecuto me devuelve tantas respuestas de una fila para cada año y lo que quiero es una sola respuesta con tantas filas como años. Busco una solución sin recurrir a una tabla temporal, claro.
Es decir, me da esto:
_year
2001
------
_year
2002
------
_year
2003
------
_year
2004
------
etc...


Y quiero esto:
_year
2001
2002
2003
2004
etc...
------

Gracias de antemano.
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #2 (permalink)  
Antiguo 25/10/2011, 07:34
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: procedimiento que devuelve un bucle

Pues sin una tabla temporal esta dificil hacer lo que dices, porque no puedes utilizar tablas temporales? y variables tipo tabla?

Código SQL:
Ver original
  1. DECLARE @y INT
  2.     DECLARE @resultado TABLE([YEAR] INT
  3.     )
  4.     SET @y=2001
  5.     WHILE(@y<=YEAR(GETDATE()))
  6.     BEGIN
  7.         INSERT INTO @resultado VALUES (@y)
  8.         SET @y=@y+1
  9.     END
  10.  
  11. SELECT * FROM @resultado

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 25/10/2011, 08:46
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
Respuesta: procedimiento que devuelve un bucle

Gracias por la respuesta, así es como lo tengo montado.
En principio no quería usar tablas temporales por la multitud de peticiones que se reciben para este propósito y porque ralentiza el proceso. Pero vamos, que si no hay más remedio...
Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge

Etiquetas: bucle, devuelve, procedimiento, 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 22:05.