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

Consulta: concatenar filas

Estas en el tema de Consulta: concatenar filas en el foro de SQL Server en Foros del Web. Hola, tengo una tabla de la siguiente manera (en realidad es un join de 2 tablas, AMIGOS y PREFERENCIAS que se relacionan por un ID_PREF): ...
  #1 (permalink)  
Antiguo 26/09/2008, 02:51
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Consulta: concatenar filas

Hola, tengo una tabla de la siguiente manera (en realidad es un join de 2 tablas, AMIGOS y PREFERENCIAS que se relacionan por un ID_PREF):

Código:
ID ID_AMIGO NOMBRE_PREF

1       1           VIDEO
2       1           MUSICA
3       1           LECTURA
4       2           VIDEO
5       2           MUSICA
6       3           VIDEO
Me gustaría hacer una SELECT que me de como resultado, una fila por cada ID_AMIGO con los nombres de sus preferencias concatenados. Así:

Código:
1 VIDEO-MUSICA-LECTURA
2 VIDEO-MUSICA
3 VIDEO
Añadir que el número de preferencias es indeterminado, es decir, puede haber N preferencias

Solo se me ocurre hacerlo con un cursor y una tabla temporal, ¿alguien sabría resolverlo con una soloa query/subquery?

Gracias
  #2 (permalink)  
Antiguo 26/09/2008, 10:37
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: Consulta: concatenar filas

Si, creando una funcion de usuario, ¿lo has intentado por ahi?
  #3 (permalink)  
Antiguo 27/09/2008, 06:16
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Respuesta: Consulta: concatenar filas

Bueno, no es mala idea...

Ahora, tengo una duda con las funciones, que procuro evitar siempre por el siguiente problema:

Al crear una función se crea con el nombre de usuario, por ejemplo usr.MiFuncion().

Cuando trabajo en mi servidor local, uso en todos los proyectos el mismo nombre de usuario por no andar tocando los scripts de instalación.

Pero cuando contrato los hostings y creo las bases de datos siempre me asignan nombres de usuario del tipo eyrt123, y esto me obliga a cambiar todos los scripts de instalación, para sustituir el nombre de usuario [usr.] por [eyrt123.], algo muy incómodo y que se presta a muchso errores...

¿No sabéis de que forma puedo evitar esto? He intentado crear las funciones con [dbo.], pero después en los hosting no suelo tener premisos de ejecución de funciones de dbo (aunque sí als puedo crear, extrañamente)

Gracias, Saludos
  #4 (permalink)  
Antiguo 29/09/2008, 09:39
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: Consulta: concatenar filas

todos los objetos, siempre deben ser creados (preferentemente) con DBO, para esto, el usuario que los crea, debe tener DB_OWNER como rol en la base correspondiente.

Porque no tengas permisos ya en el hosting para invocar a dichos objetos, lo desconozco, deberias consultarlo con tu proveedor de hosting.
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 09:15.