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

SQL Server: Multiples ID's en en columnas

Estas en el tema de SQL Server: Multiples ID's en en columnas en el foro de Bases de Datos General en Foros del Web. Hola, necesito ayuda para resolver esta situacion, he mirado por aqui no he visto solución. Tengo un tabla COSAS, con por ejemplo: ID_Cosa | Nombre ...
  #1 (permalink)  
Antiguo 08/02/2005, 09:52
 
Fecha de Ingreso: febrero-2005
Mensajes: 6
Antigüedad: 19 años, 2 meses
Puntos: 0
SQL Server: Multiples ID's en en columnas

Hola, necesito ayuda para resolver esta situacion, he mirado por aqui no he visto solución.

Tengo un tabla COSAS, con por ejemplo:

ID_Cosa | Nombre
1 - Mesa
2 - Silla
3 - Casa

Otra tabla PERSONAS

ID_Persona | Nombre
90 - Pepe
91 - Juan

Y por ultimo, una tabla "contenedora"

ID_Persona | Preferencia1 | Preferencia2 ....( asi hasta 10)
90 - 2 - 3
91 - 1 - 2


Lo que quiero es poder decir con un solo select

Pepe prefiere primero la silla y despues la Casa

Es decir que me sustituya los ID's de cada columna por el nombre relacionado.

Muchas gracias
  #2 (permalink)  
Antiguo 08/02/2005, 10:56
Avatar de claray  
Fecha de Ingreso: agosto-2004
Ubicación: ahora... en Caracas
Mensajes: 345
Antigüedad: 19 años, 8 meses
Puntos: 0
hola, con esto funciona, aunque poco ortodoxo funciona. Podria cambiarse con JOINs, pero asi va...


SELECT a.id_persona,b.nombre cosa1,c.nombre cosa2,d.nombre cosa3,e.nombre cosa4,f.nombre cosa5,g.nombre cosa6,h.nombre cosa7,i.nombre cosa8,j.nombre cosa9,k.nombre cosa10
FROM personas a,cosas b,cosas c,cosas d,cosas e,cosas f,cosas g,cosas h,cosas i,cosas j,cosas k,contenedor
WHERE a.id_persona=contenedor.id_persona
AND b.id_cosa=contenedor.preferencia1
AND c.id_cosa=contenedor.preferencia2
AND d.id_cosa=contenedor.preferencia3
AND e.id_cosa=contenedor.preferencia4
AND f.id_cosa=contenedor.preferencia5
AND g.id_cosa=contenedor.preferencia6
AND h.id_cosa=contenedor.preferencia7
AND i.id_cosa=contenedor.preferencia8
AND j.id_cosa=contenedor.preferencia9
AND k.id_cosa=contenedor.preferencia10

saludos.
__________________
:pirata: El arte de desarrollar es dejar que los otros lo hagan
  #3 (permalink)  
Antiguo 08/02/2005, 12:19
 
Fecha de Ingreso: febrero-2005
Mensajes: 6
Antigüedad: 19 años, 2 meses
Puntos: 0
Perfecto!!

Es lo que quería muchisimas gracias, lo habia dado miles de vueltas y no habia dado con la solución.

Muchas gracias!
  #4 (permalink)  
Antiguo 08/02/2005, 12:43
 
Fecha de Ingreso: febrero-2005
Mensajes: 6
Antigüedad: 19 años, 2 meses
Puntos: 0
Me permito añadir una mejora, ahora usando JOINS

SELECT a.ID_Persona AS Persona, b.Nombre AS Preferencia1, c.Nombre AS Preferencia2, d.Nombre AS Preferencia3, e.Nombre AS Preferencia4
FROM Contenedor Contenedor_1 INNER JOIN
Cosasb ON Contenedor_1.Preferencia1= b.ID_Cosa INNER JOIN
Cosasc ON Contenedor_1.Preferencia2= c.ID_Cosa INNER JOIN
Cosasd ON Contenedor_1.Preferencia3= d.ID_Cosa INNER JOIN
Cosase ON Contenedor_1.Preferencia4= e.ID_Cosa CROSS JOIN
Personas a
WHERE (Contenedor_1.ID_Persona= a.Id_Persona)

Última edición por Supercoco; 08/02/2005 a las 12:46
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 16:49.