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

Concatenar varios resultados en una sola celda!!!!!

Estas en el tema de Concatenar varios resultados en una sola celda!!!!! en el foro de SQL Server en Foros del Web. Please help!!! ya busque en el foro algo con esto y no encontre nada. Tengo una consulta que lo que quiere es que no me ...
  #1 (permalink)  
Antiguo 29/05/2009, 09:52
 
Fecha de Ingreso: mayo-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Concatenar varios resultados en una sola celda!!!!!

Please help!!! ya busque en el foro algo con esto y no encontre nada. Tengo una consulta que lo que quiere es que no me repita las empresas mas sin embargo me ponga todos los productos que tiene esta empresa en una sola celda.

SELECT V_ACCOUNT.NAME,
CIG_PRODUCTO.DESCRIPCION
FROM V_ACCOUNT
LEFT JOIN CAMARA.DBO.CIG_PRODUCTO_CLIENTE ON CAMARA.DBO.V_ACCOUNT.CUST_ID=CAMARA.DBO.CIG_PRODUC TO_CLIENTE.CUST_ID
LEFT JOIN CAMARA.DBO.CIG_PRODUCTO ON CAMARA.DBO.CIG_PRODUCTO.IDPRODUCTO=CAMARA.DBO.CIG_ PRODUCTO_CLIENTE.IDPRODUCTO
LEFT JOIN CAMARA.DBO.CIG_PRODUCTO_PARTIDA ON CAMARA.DBO.CIG_PRODUCTO_PARTIDA.IDPRODUCTO=CAMARA. DBO.CIG_PRODUCTO_CLIENTE.IDPRODUCTO
ORDER BY V_ACCOUNT.NAME

Este es el resultado que me da esta consulta

NAME.......................................DESCRIP CION
A-Expressions..........................BORDADOS
A-Expressions..........................CORTE
A-Expressions..........................SERIGRAFÍA
A-tel Communications, S.A.......TELEFONIA INALAMBRICA RESIDENCIAL
ABG Publicidad.........................RENTA
ABG Publicidad.........................VALLAS

Esto es lo que quiero lograr

NAME.......................................DESCRIP CION
A-Expressions..........................BORDADOS, CORTE, SERIGRAFÍA
A-tel Communications, S.A.......TELEFONIA INALAMBRICA RESIDENCIAL
ABG Publicidad.........................RENTA, VALLAS PUBLICITARIAS

Quiero que me junto todos los pruductos en una sola celda no importa si tiene uno o muchos pruductos.

A-Expressions......................BORDADOS, CORTE, SERIGRAFÍA
  #2 (permalink)  
Antiguo 29/05/2009, 12:50
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Concatenar varios resultados en una sola celda!!!!!

Ya se ha tratado el tema en este foro, ¿Que version de SQL Server manejas?
  #3 (permalink)  
Antiguo 29/05/2009, 12:56
 
Fecha de Ingreso: mayo-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: Concatenar varios resultados en una sola celda!!!!!

Cita:
Iniciado por iislas Ver Mensaje
Ya se ha tratado el tema en este foro, ¿Que version de SQL Server manejas?
SQL 2005, lo busque toda la mañana y no encontre nada parecido.
  #4 (permalink)  
Antiguo 29/05/2009, 16:07
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Concatenar varios resultados en una sola celda!!!!!

Veamos si es funcional

-- creo tabla de prueba
CREATE TABLE Test (Nombre varchar(50), Descrip varchar(50))

-- inserto registros de prueba
insert into Test values('A-Expressions','BORDADOS')
insert into Test values('A-Expressions','CORTE')
insert into Test values('A-Expressions','SERIGRAFÍA')
insert into Test values('A-tel Communications, S.A','TELEFONIA INALAMBRICA RESIDENCIAL')
insert into Test values('ABG Publicidad.','RENTA')
insert into Test values('ABG Publicidad.','VALLAS')

-- creo una funcion
create function fnJuntaTexto (@Name varchar(50))
returns varchar(255)
as
begin
declare @retorno varchar(255)
set @retorno = ''
select @retorno = @retorno + ' ' + descrip from Test where Nombre = @Name
return @retorno
end

-- utilizo la funcion en el select
select distinct nombre, dbo.fnJuntaTexto (Nombre) as Descrip from Test

----------------------------------------------------------------------
A-Expressions BORDADOS CORTE SERIGRAFÍA
A-tel Communications, S.A TELEFONIA INALAMBRICA RESIDENCIAL
ABG Publicidad. RENTA VALLAS
  #5 (permalink)  
Antiguo 16/02/2010, 10:34
 
Fecha de Ingreso: octubre-2008
Mensajes: 61
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Concatenar varios resultados en una sola celda!!!!!

Me marcaba un error con la variable retorno que no podía ser utilizada en el select.

sin embargo volví a intentarlo para postear el error y salió, gracias de todos modos amigo, aprecio tu amable ayuda

upss me equivoque de post, era para este:
http://www.forosdelweb.com/f87/como-concatenar-filas-columna-778671/#post3282764

Última edición por Cristo_; 16/02/2010 a las 11:19 Razón: Equivocación
  #6 (permalink)  
Antiguo 16/02/2010, 11:07
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Concatenar varios resultados en una sola celda!!!!!

u r wellcome.......ja
  #7 (permalink)  
Antiguo 16/02/2010, 17:17
 
Fecha de Ingreso: septiembre-2009
Mensajes: 66
Antigüedad: 14 años, 7 meses
Puntos: 0
Sonrisa Respuesta: Concatenar varios resultados en una sola celda!!!!!

Hola medievals lo que tienes que hacer es crear un apuntador, yo tenia el mismo problema ya que SQL Server no te permite crear vectores ni matrices yo pude hacerlo de la siguiente manera


declare @variable nvarchar(1000)
select @variable = space(1000)

set @variable =
''select @variable = @variable + rtrim(ltrim(campo_de_la_tabla)) + ', '
from tabla
where condicion
set @variable = substring (@variable, 1, len(ltrim(@variable))-1)

select @error = @error + @@error

IF (@variable is not null) or (@variable <> ' ')
BEGIN
UPDATE tabla
SET campo_de_la_tabla = @variable
where condicion

SELECT @error = @error + @@error
END

te regresa los valores concatenados y deparados por una "," y un espacio
  #8 (permalink)  
Antiguo 16/02/2010, 17:58
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Concatenar varios resultados en una sola celda!!!!!

En tu post, te comente que dudo mucho que la instruccion set @variable = , funcione.

A menos de que no conozca toda la estructura de tu query, pero dudo que funcione.
  #9 (permalink)  
Antiguo 16/02/2010, 18:12
 
Fecha de Ingreso: septiembre-2009
Mensajes: 66
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Concatenar varios resultados en una sola celda!!!!!

Deberias intentarlo ya que como te comente a mi me funciona a la perfeccion yo lo utilizo en SQL Server 2000 y 2005 y no me cause ningun problema, como consulta funciona a la perfeccion
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 17:54.