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

Consulta, lista con comas Coalesce Sql 2005

Estas en el tema de Consulta, lista con comas Coalesce Sql 2005 en el foro de SQL Server en Foros del Web. La situacion es la siguiente, dadas dos tablas como las siguientes con sus respectivos campos: TblSolicitudCartas: IdSolicitudCarta int, vcSolicitudCarta varchar(100) RelSolicitudCarta: IdSolicitudCarta int, IdCarta int ...
  #1 (permalink)  
Antiguo 05/11/2010, 12:51
 
Fecha de Ingreso: noviembre-2010
Ubicación: Aqui y tu?
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Consulta, lista con comas Coalesce Sql 2005

La situacion es la siguiente, dadas dos tablas como las siguientes con sus respectivos campos:

TblSolicitudCartas: IdSolicitudCarta int, vcSolicitudCarta varchar(100)
RelSolicitudCarta: IdSolicitudCarta int, IdCarta int
CatCarta: IdCarta int, vcCarta varchar(100)

TblSolicitudCarta es una tabla donde se almacenan las solicitudes de cartas.
RelSolicitudCarta es la relacion entre solicitudes y cartas.
CatCarta es el catálogo de cartas.

Necesito realizar un Stored Procedure que reciba como unico parámetro un IdSolicitudCarta y retorne una tabla teniendo como campos resultantes el IdSolicitudCarta, el nombre de la solicitud y una lista separada por comas de todas las cartas relacionadas a esa solicitud de carta

por ejemplo

CatCartas
IdCarta vcCarta
1 Carta1
2 Carta2
3 Carta3
4 Carta4
5 Carta5

RelSolicitudCarta
IdSolicitudCarta IdCarta
1 1
1 3
1 5

TblSolicitudCartas
IdSolicitudCarta vcSolicitudCarta varchar(100)
1 Solicitud1
2 Solicitud2

Si al Stored Procedured se le pasa como parametro un IdSolicitudCarta = 1
el resultado seria:
IdSolicitudCarta vcSolicitudCarta vcCartas
1 Solicitud1 Carta1,Carta3,Carta5

Si al Stored Procedured se le pasa como parametro un IdSolicitudCarta = 2
2 Solicitud2 Carta2,Carta4


Si al Stored Procedured se le pasa como parametro un IdSolicitudCarta = -1
1 Solicitud1 Carta1,Carta3,Carta5
2 Solicitud2 Carta2,Carta4

Encontre en http://www.macs68.net/?p=166 un ejemplo del uso de la funcion COALESCE para obtener una lista separada por comas.

Use DDBB_Name
GO

DECLARE @listStr VARCHAR(MAX)SELECT @listStr = COALESCE(@listStr+',' ,'') + name
FROM pick_list
Where category_id = 'Type' SELECT @listStr
GO


Pero no lobro el resultado esperado para este caso en especial, les agradezco infinitamente su apoyo.
  #2 (permalink)  
Antiguo 05/11/2010, 14:22
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Consulta, lista con comas Coalesce Sql 2005

http://www.forosdelweb.com/f87/conca...2/#post2228711
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 05/11/2010, 17:45
 
Fecha de Ingreso: noviembre-2010
Ubicación: Aqui y tu?
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Consulta, lista con comas Coalesce Sql 2005

thanks...encontré la solucion 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

Etiquetas: coalesce, consulta, procedure, query, stored
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 14:51.