![]() |
Concatenar varias filas en una columna Alguien me puede ayudar para convertir la siguiente tabla: IdHistoria NUmFila Memo 1 0 es de color 1 1 rojo 2 0 no funciona 3 0 3 1 para revisar en esta tabla IdHistoria Memo 1 es de color rojo 2 no funciona 3 para revisar Gracias por la ayuda, estoy medio desesperado Franck |
Re: Concatenar varias filas en una columna Franck No se comprende cual es el objetivo, me podrias dar mas datos. |
Re: Concatenar varias filas en una columna La tabla actual tiene tres columnas. la primera es el ID (IdHistoria), la segunda (NumFila) que corresponde al orden en que se debe concatenar y la tercera columna (Memo). Necesito reconstruir una tabla de solo dos columans, la primera con el "IdHistoria" y la segunda "Memo" con los datos concatenados. En resumen es Concatenar los datos de la columna Memo con el mismo IdHistoria en el orden de la columna NumFila en una nueva tabla |
Re: Concatenar varias filas en una columna Si solamente son 2 filas (registros), estamos del otro lado, pero si no, esto no funcionara SELECT t1.memo+t2.memo FROM tutabla t1 join tutabla2 ON t1.IdHistoria = t2.NUmFila WHERE t1.NUmFila < t2.NUmFila Espero que funcione |
Re: Concatenar varias filas en una columna Gracias por la ayuda pero no me funciona. Tengo solo una tabla que tiene tres columna y un gran numero de fila (va creciendo). Tomando los datos de esta tabla debo crear una nueva tabla concatenando los datos de varias filas de la tercera columna (llamada Memo) en una sola fila toda vez que tengan el mismo ID (primera columna IdHistoria) Ejemplo ID Memo 1 a 2 b 2 c 3 d 4 e 5 f 5 g 5 h Resultado de la nueva tabla que se crea a partir de lo anterior ID Memo 1 a 2 bc 3 d 4 e 5 fgh |
Re: Concatenar varias filas en una columna create table prueba (ID INT, MEMO VARCHAR(50)) INSERT INTO prueba VALUES(1, 'a') INSERT INTO prueba VALUES(2, 'b') INSERT INTO prueba VALUES(2, 'c') INSERT INTO prueba VALUES(3, 'd') INSERT INTO prueba VALUES(4, 'e') INSERT INTO prueba VALUES(5, 'f') INSERT INTO prueba VALUES(5, 'g') INSERT INTO prueba VALUES(5, 'h') alter function dbo.fn_ConcatenaMemo (@id int) returns varchar(50) as begin declare @memo varchar(50) set @memo = '' select @memo = @memo + memo from prueba where id = @id return (@memo) end SELECT distinct ID, dbo.fn_ConcatenaMemo(id) as memo from prueba drop table prueba |
Re: Concatenar varias filas en una columna En caso de que uses SQL Server 2000 la solución propuesta por iislas es una de las más fáciles. En caso de que uses SQL Server 2005, puedes intentar usando XML con CROSS APPLY: Código: SELECT a.ID, node.text |
Re: Concatenar varias filas en una columna MUCHAS GRACIAS A TODOS ME FUNCIONO. Son Geniales |
Respuesta: Concatenar varias filas en una columna yo use esta solucion que encontré en http://es.w3support.net/index.php?db=so&id=111341 declare @t table(id int, name varchar(20),somecolumn varchar(10)) insert into @t select 1,'ABC','X' union all select 1 ,'ABC','Y' union all select 1,'ABC','Z' union all select 2 ,'MNO','R' union all select 2 ,'MNO','S' Consulta: select ID,Name, stuff((select ',' + CAST(t2.SomeColumn as varchar(10)) from @t t2 where t1.id = t2.id and t1.name = t2.name for xml path('')),1,1,'') SomeColumn from @t t1 group by id,Name Salida: ID NameSomeColumn 1 ABCX,Y,Z 2 MNOR,S |
| La zona horaria es GMT -6. Ahora son las 07:50. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.