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
|
|
#1 (permalink) |
![]() Fecha de Ingreso: diciembre-2007
Mensajes: 8
|
Concatenar varias filas en una columna
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 |
|
|
|
|
|
#3 (permalink) |
![]() Fecha de Ingreso: diciembre-2007
Mensajes: 8
|
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
|
|
|
|
|
|
#4 (permalink) |
|
Colaborador
![]() Fecha de Ingreso: julio-2007
Mensajes: 1.407
|
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 |
|
|
|
|
|
#5 (permalink) |
![]() Fecha de Ingreso: diciembre-2007
Mensajes: 8
|
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 |
|
|
|
|
|
#6 (permalink) |
|
Colaborador
![]() Fecha de Ingreso: julio-2007
Mensajes: 1.407
|
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 |
|
|
|
|
|
#7 (permalink) |
![]() Fecha de Ingreso: noviembre-2002
Ubicación: México, D.F.
Mensajes: 367
|
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
FROM (
SELECT DISTINCT id
FROM Memos
) AS a
CROSS APPLY(
SELECT Memo AS '*'
FROM Memos
WHERE id = a.id
FOR XML PATH('')
) AS node(text)
Última edición por Beakdan; 26-dic-2007 a las 16:52. |
|
|
|