SQL - Anidar varias tablas

 
Vista:

Anidar varias tablas

Publicado por Noelia (1 intervención) el 31/01/2017 19:41:00
Tengo que unir 4 tablas en SQL SERVER.
Tengo que mostrar los artículos y los precios:

Select articulos.cod_articu,cod_deposi, nro_de_lis,precio,cant_comp, cant_pend,cant_stock,cant_comp_2,cant_pend_2, cant_stock_2
from listadepre inner join articulos on listadepre.cod_articu=articulos.cod_articu

Esto funciona de maravilla!

El tema es que para lo que es el stock debo mostrar la unidad de medida y unidad de medida 2,
Las medidas y las unidades de medida para el stock son otras 2 tablas el tema es que no se como unificarlo para que me traiga el select anterior con el de las unidades de medida correspondiente por cada saldo.
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
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Anidar varias tablas

Publicado por Isaias (1921 intervenciones) el 31/01/2017 21:41:59
Pues es un simple JOIN con las demas tablas, ¿no?
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Anidar varias tablas

Publicado por leonardo_josue (1173 intervenciones) el 31/01/2017 21:51:25
Hola Noelia:

No me queda del todo claro lo que quieres hacer, pero si estoy en lo correcto, lo que tienes es una doble referencia hacia una misma tabla, veamos un ejemplo para ver si va por ahí.

Un caso típico para este tipo de tablas es cuando quieres guardar por un lado el nombre de los empleados y por otro lado la relación empleado-jefe de cada uno de ellos, ya que resulta que un jefe es a la vez empleado... tendríamos una tabla entonces así:

1
2
3
4
5
6
7
8
9
10
SELECT * FROM empleados;
+-----------+--------+
|id_empleado|nombre  |
|-----------+--------|
|          1|leonardo|
|--------------------|
|          2|josue   |
|--------------------|
|          3|noelia  |
+-----------+--------+

Ahora, supongamos que noelia es jefa de leonardo y de josue, entonces, podríamos modelar una tabla de relación con la siguiente estructura:

1
2
3
4
5
6
7
8
SELECT * FROM relaciones
+----------------+-----------+
|id_empleado_jefe|id_empleado|
|----------------+-----------|
|               3|          1|
|----------------+-----------|
|               3|          2|
+----------------+-----------+

Ahora bien, si queremos obtener al mismo tiempo el nombre del empleado y el nombre del jefe, es donde se dá la relación o circular.
En este caso, lo que tienes que hacer es utilizar es hacer un doble join sobre la tabla de empleados, utilizando un ALIAS, de tal suerte que cada columna la relaciones como si fueran tablas "distintas", es decir, algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT T1.nombre jefe, T2.nombre subordinado
FROM
  relaciones
INNER JOIN
  empleados T1 ON relaciones.id_empleado_jefe = T1.id_empleado
INNER JOIN
  empleados T2 ON relaciones.id_empleado = T2.id_empleado
 
+--------+-----------+
|jefe    |subordinado|
|--------|-----------|
|noelia  |leonardo   |
|--------|-----------|
|noelia  |josue      |
+--------+-----------+

Haz la prueba y nos comentas si esto es más o menos lo que necesitas. Si continuas con problemas postea entonces la estructura de tus tablas y pon algunos datos de ejemplo. A partir de esos datos dinos qué es lo que esperas obtener como salida y con gusto te ayudamos a buscar alguna otra alternativa.

Saludos
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

Anidar varias tablas

Publicado por JONATHAN (1 intervención) el 07/05/2021 08:22:50
y si en caso de que las tablas no tengan relacion como se pudiera hacar para sacar datos de dos tablas?
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
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Anidar varias tablas

Publicado por Isaias (1921 intervenciones) el 07/05/2021 16:45:37
Si no hay una columna que las UNA, es como tratar de mezclar ACEITE con AGUA y me explico, si tengo una tabla de todos mis PACIENTES registrados en mi HOSPITAL y hay otro sistema donde se tiene una tabla donde se registran todos los PRODUCTOS del inventario, ¿Cómo puedo cruzar PACIENTES con PRODUCTOS?, ¿Es así de drástico?
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