Foros del Web » Programación para mayores de 30 ;) » Programación General »

Crear un Select que concatene varios registros

Estas en el tema de Crear un Select que concatene varios registros en el foro de Programación General en Foros del Web. Necesito realizar un select donde concatene los registros de una columna,ya que la tabla contiene muchos registros, ejemplo Nº Descripcion Monto 1 lapiz 10 2 ...
  #1 (permalink)  
Antiguo 22/08/2010, 08:21
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 13 años, 8 meses
Puntos: 0
Crear un Select que concatene varios registros

Necesito realizar un select donde concatene los registros de una columna,ya que la tabla contiene muchos registros, ejemplo

Nº Descripcion Monto
1 lapiz 10
2 Borrador 20
3 Creyones 30
4 Cuaderno 40

En el select quiero que se muestre de la siguiente manera:
lapiz-Borrador-Creyones-Cuaderno,100
  #2 (permalink)  
Antiguo 23/08/2010, 08:33
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: Crear un Select que concatene varios registros

Aqui esta un codigo donde puedes obtener lo que buscas...

Código:
create table #temp_table (
id int,
descripcion varchar(20),
monto int
)

insert into #temp_table (id,descripcion,monto) values (1,'lapiz',10)
insert into #temp_table (id,descripcion,monto) values (2,'cuaderno',20)
insert into #temp_table (id,descripcion,monto) values (3,'borrador',30)
insert into #temp_table (id,descripcion,monto) values (4,'crayones',40)


declare @descripcion as varchar(200)
declare @resultado as varchar(max)
declare @total int
declare @monto int
declare @x int
declare @y int
declare @cuantos int

select @cuantos=count(*) from #temp_table
set @x=1
set @resultado=''
set @total=0
while @x<=@cuantos
begin
	select @descripcion=descripcion,@monto=monto from #temp_table where id=@x
	set @total=@total+@monto
	set @resultado = @resultado + @descripcion + '-'	
set @x=@x+1
end
set @resultado = @resultado + convert(varchar(20),@total)
print @resultado
espero que sea lo que requieres, saludos!!

Etiquetas: registros, 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 12:10.