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

[SOLUCIONADO] guardar resultados de un select separado por comas en sqlserver?

Estas en el tema de guardar resultados de un select separado por comas en sqlserver? en el foro de SQL Server en Foros del Web. Saludos amigos, Tengo este codigo que me guarda en una variable SQL el resultado de un select, pero quiero almacenar en una variable SQL todos ...
  #1 (permalink)  
Antiguo 16/01/2014, 15:09
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta guardar resultados de un select separado por comas en sqlserver?

Saludos amigos,

Tengo este codigo que me guarda en una variable SQL el resultado de un select, pero quiero almacenar en una variable SQL todos los ID que encuentre la consulta, deseo guardar en una variable tipo VARCHAR ese resultado separado por comas (,). Alguien sabe como podria hacerlo... ?

mi codigo:
Código SQL:
Ver original
  1. DECLARE @IdWagerParlay INT
  2. SELECT  @IdWagerParlay = D.[IdWager] FROM WAGERDETAIL D, WAGERHEADER H, GAME G, PERIOD P, AGENT A, WAGERTYPE W
  3. WHERE   D.[IdWager]     = H.[IdWager] AND
  4.         D.[IdGame]      = G.[IdGame]  AND
  5.         H.[IdAgent]     = A.[IdAgent] AND
  6.         H.[IdWagerType] = W.[IdWagerType] AND
  7.         D.[IdSport]     = P.[IdSport] AND
  8.         D.[Period]      = P.[NumberOfPeriod] AND
  9.         W.[Description] LIKE '%PARLAY%' AND
  10.         H.[SettledDate] >= CONVERT(datetime,('2014-01-16 00:00:01')) AND
  11.         H.[SettledDate] <= CONVERT(datetime,('2014-01-16 23:59:59')) AND
  12.         H.[IdAgent] = 5039
  13. GROUP BY D.[IdWager]
  14.        
  15. PRINT   @IdWagerParlay
  #2 (permalink)  
Antiguo 16/01/2014, 15:15
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: guardar resultados de un select separado por comas en sqlserver?

para hacer lo que quieres puedes hacer esto:

Código SQL:
Ver original
  1. DECLARE @IdWagerParlay VARCHAR(MAX)
  2. SET @IdWagerParlay=''
  3. SELECT  @IdWagerParlay = @IdWagerParlay + CONVERT(VARCHAR(20),D.[IdWager]) + ',' FROM WAGERDETAIL D, WAGERHEADER H, GAME G, PERIOD P, AGENT A, WAGERTYPE W
  4. WHERE   D.[IdWager]     = H.[IdWager] AND
  5.         D.[IdGame]      = G.[IdGame]  AND
  6.         H.[IdAgent]     = A.[IdAgent] AND
  7.         H.[IdWagerType] = W.[IdWagerType] AND
  8.         D.[IdSport]     = P.[IdSport] AND
  9.         D.[Period]      = P.[NumberOfPeriod] AND
  10.         W.[Description] LIKE '%PARLAY%' AND
  11.         H.[SettledDate] >= CONVERT(datetime,('2014-01-16 00:00:01')) AND
  12.         H.[SettledDate] <= CONVERT(datetime,('2014-01-16 23:59:59')) AND
  13.         H.[IdAgent] = 5039
  14. GROUP BY D.[IdWager]
  15.        
  16. PRINT   @IdWagerParlay
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 16/01/2014 a las 15:39
  #3 (permalink)  
Antiguo 16/01/2014, 15:36
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Exclamación Respuesta: guardar resultados de un select separado por comas en sqlserver?

Amigo lo probe y no me imprime nada
  #4 (permalink)  
Antiguo 16/01/2014, 15:40
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: guardar resultados de un select separado por comas en sqlserver?

Una recomendacion, los codigos que aqui se ponen son solo para que te des una idea de como resolver tu problema, supongo que estas trabajando o estudiando, asi que la paga es para mi o el 10 es para mi? claro que no, tambien tu pon algo de tu parte....

Código SQL:
Ver original
  1. DECLARE @IdWagerParlay VARCHAR(MAX)
  2. SET @IdWagerParlay=''
  3. SELECT  @IdWagerParlay = @IdWagerParlay + CONVERT(VARCHAR(20),D.[IdWager]) + ',' FROM WAGERDETAIL D, WAGERHEADER H, GAME G, PERIOD P, AGENT A, WAGERTYPE W
  4. WHERE   D.[IdWager]     = H.[IdWager] AND
  5.         D.[IdGame]      = G.[IdGame]  AND
  6.         H.[IdAgent]     = A.[IdAgent] AND
  7.         H.[IdWagerType] = W.[IdWagerType] AND
  8.         D.[IdSport]     = P.[IdSport] AND
  9.         D.[Period]      = P.[NumberOfPeriod] AND
  10.         W.[Description] LIKE '%PARLAY%' AND
  11.         H.[SettledDate] >= CONVERT(datetime,('2014-01-16 00:00:01')) AND
  12.         H.[SettledDate] <= CONVERT(datetime,('2014-01-16 23:59:59')) AND
  13.         H.[IdAgent] = 5039
  14. GROUP BY D.[IdWager]
  15.        
  16. PRINT   @IdWagerParlay
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 16/01/2014, 15:43
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta Respuesta: guardar resultados de un select separado por comas en sqlserver?

Amigo eres un genio funciono muy bien, pero tengo un pequeñin problema... cuando el select llega al final de los id que encontro me imprime otra coma (,) sabes como podria remover la ultima coma ?
  #6 (permalink)  
Antiguo 16/01/2014, 16:13
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: guardar resultados de un select separado por comas en sqlserver?

este.....sip pero eso esta sencillo amigo es con un substring, o con un right o hay diferentes metodos, pero como veo que no se te da la investigacion aqui esta la solucion:

Código SQL:
Ver original
  1. DECLARE @IdWagerParlay VARCHAR(MAX)
  2. SET @IdWagerParlay=''
  3. SELECT  @IdWagerParlay = @IdWagerParlay + CONVERT(VARCHAR(20),D.[IdWager]) + ',' FROM WAGERDETAIL D, WAGERHEADER H, GAME G, PERIOD P, AGENT A, WAGERTYPE W
  4. WHERE   D.[IdWager]     = H.[IdWager] AND
  5.         D.[IdGame]      = G.[IdGame]  AND
  6.         H.[IdAgent]     = A.[IdAgent] AND
  7.         H.[IdWagerType] = W.[IdWagerType] AND
  8.         D.[IdSport]     = P.[IdSport] AND
  9.         D.[Period]      = P.[NumberOfPeriod] AND
  10.         W.[Description] LIKE '%PARLAY%' AND
  11.         H.[SettledDate] >= CONVERT(datetime,('2014-01-16 00:00:01')) AND
  12.         H.[SettledDate] <= CONVERT(datetime,('2014-01-16 23:59:59')) AND
  13.         H.[IdAgent] = 5039
  14. GROUP BY D.[IdWager]
  15.  
  16. SET @IdWagerParlay=SUBSTRING(@IdWagerParlay,1,len(@IdWagerParlay)-1)      
  17.  
  18. PRINT   @IdWagerParlay
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: comas, resultados, select, separado, sql
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.