SQL - Urgente consulta de seleccion

 
Vista:

Urgente consulta de seleccion

Publicado por Diana (2 intervenciones) el 29/06/2010 21:21:58
Hola tengo un problema, estoy trabajando con una base de datos en SQLSERVER y utilizo sentencias sql para realizar consultas, tengo 2 tablas un tabla donde almaceno la unidades de medida y otra dode almaceno datos. La tabla unidades se relaciona a través de su campo codigo_unidad con la tabla datos con los campos codigo_unida_fuerza y el campo codigo_unidad_distancia, lo que quiero hacer es una cosulta que me muestre los nombres de las unidades de fuerza y distancia así:

codigo_unidad_fuerza nombre unidad codigo_unida_distancia Nombre Unidad

50 KiloNewtons 100 milimitros
60 Newtons 80 Centimetros

Como hago, que istruccion debo usar porfa, es urgente...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:Urgente consulta de seleccion

Publicado por Leonardo Josue (1173 intervenciones) el 30/06/2010 17:29:02
Buenos días Diana... para unir dos tablas que se relacionan mediante un atributo puedes utilizar la cláusula INNER JOIN. Al leer tu post la verdad no me quedó claro que es lo que necesitas, sobre todo por el hecho de que no describes a profundidad cómo es la estructura de tus tablas y serviría también que pongas algúnos datos de ejemplo y qué necesitas como salida, mientras más detalles expongas será más facil tratar de ayudarte.

Voy a suponer que en tu tabla UNIDADES tienes algo como esto:

codigo_unidad_fuerza|nombre_unidad
--------------------------------------------------------
50|KiloNewtons
60|Newtons
80|Centimetros
100|milimitros

Ahora supongo que en tu tabla DATOS tienes algo como esto:

codigo_unidad_fuerza|codigo_unidad_distacia
------------------------------------------------------------------
50|100
60|80

Por lo tanto y si estoy en lo correcto lo que necesitas de salida sería esto:

codigo_unidad_fuerza|nombre_unidad|codigo_unida_distancia|nombre_unidad
--------------------------------------------------------------------------------------------------------------
50|KiloNewtons|100 milimitros
60|Newtons|80|Centimetros

ahora bien, dado que dos campos están relacionados con una misma tabla lo que tienes que hacer es lo siguiente.

select
X.codigo_unidad_fuerza,
A.nombre_unidad,
X.codigo_unidad_distancia,
B.descripcion_unidad
from
DATOS X
inner join UNIDADES A on A.codigo_unidad = X.codigo_unidad_fuerza
inner join UNIDADES B on B.codigo_unidad = X.codigo_unidad_distancia

El truco está en hacer un doble INNER JOIN sobre la misma tabla, utilizando alias diferentes. Espero que este código te sea de utilidad, si tienes algún problema comentalo en el foro para tratar de ayudarte.

Saludos y espero tus comentarios.
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias Leo....

Publicado por Diana (2 intervenciones) el 30/06/2010 18:44:38
Leo muchisimas gracias por tu ayuda, me sirvio mucho y pude resolver el problema que tenia con la consulta que me enviaste, mil gracias nuevamente y que bueno encontrar gente con tanto conocimiento como tu en los foros...
Saludos...

Diana
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar