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

Como concatenar la informacion de varios registros en un solo campo

Estas en el tema de Como concatenar la informacion de varios registros en un solo campo en el foro de SQL Server en Foros del Web. Bueno aqui les envio un poco mas de informacion. Resulta que estoy trabajando un proyecto para una biblioteca, en el momento tengo que realizar una ...
  #1 (permalink)  
Antiguo 28/04/2006, 15:24
 
Fecha de Ingreso: abril-2006
Mensajes: 2
Antigüedad: 18 años
Puntos: 0
Pregunta Como concatenar la informacion de varios registros en un solo campo

Bueno aqui les envio un poco mas de informacion.

Resulta que estoy trabajando un proyecto para una biblioteca, en el momento tengo que realizar una consulta en la que necesito mostrar en un solo registro el titulo del libro, todos los autores y la signatura topografica del libro.

Tengo una tabla con los libros, y otra con los autores, como un libro puede tener uno o mas autores, la consulta me retorna el mismo registro el numero de veces como autores tenga el libro.

Lo que necesito como ya mencione anteriormente es que los nombres de los autores me salgan en un solo registro.
  #2 (permalink)  
Antiguo 28/04/2006, 15:39
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Puedes crear una función a la que le mandas como parámetro el código del libro, con ese parámetro haces la consulta de cuantos autores tiene. Es decir en la función usas un cursor en el cual estaria la consulta de cuantos autores tiene el libro.
Recorres el cursor y por registro vas concatenando los autores y guardandolo en una variable....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #3 (permalink)  
Antiguo 05/05/2006, 15:06
Avatar de claray  
Fecha de Ingreso: agosto-2004
Ubicación: ahora... en Caracas
Mensajes: 345
Antigüedad: 19 años, 8 meses
Puntos: 0
Esta funcion lo hace... le pasas un numero que esta asociando los valores a otra tabla y te devuelve los campos concatenados (fijate que le pone una coma para separar):

CREATE FUNCTION dbo.concatena (@numero varchar(10))
RETURNS varchar(5000) AS
BEGIN
declare @retvalue varchar(5000)
set @retvalue=''

select @retvalue = @retvalue +ltrim(rtrim(isnull(NOMBRE,'')))+','
from (select nombre from TABLA_ORIGEN as s where s.numero = @numero) as tmp_tbl

return substring(@retvalue,1,len(@retvalue)-1)

END


saludos y suerte
__________________
:pirata: El arte de desarrollar es dejar que los otros lo hagan
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 07:18.