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

problema como hacer una consulta a 3 tablas relacionadas

Estas en el tema de problema como hacer una consulta a 3 tablas relacionadas en el foro de SQL Server en Foros del Web. hola la cuestion es la sigueinte. tengo una tabla obra q tiene n cantidad de partidas y cada partida tiene n cantidad de materiales.. quiero ...
  #1 (permalink)  
Antiguo 26/11/2012, 11:18
 
Fecha de Ingreso: noviembre-2012
Mensajes: 1
Antigüedad: 12 años
Puntos: 0
problema como hacer una consulta a 3 tablas relacionadas

hola la cuestion es la sigueinte.

tengo una tabla obra q tiene n cantidad de partidas y cada partida tiene n cantidad de materiales.. quiero hacer una consulta de todos los materiales de todas las partidas q tiene una obra en especifico

tb_obra:
cod_obra
descripcion
fecha

tb_partida:
cod_partida
descripcion
fecha

tb_materiales:
codigo_materiales
descripcion

tablas relacionales:

tr_obra_partida:
cod_obra
cod_partida

tr_partida_material:
cod_partida
cod_material


esto es lo q e logrado.. pero solo me arroja un solo material de la obra.. y son muchos los q tienen.. :S noc q hacer

SELECT
tb_obra.cod_obra,
tb_obra.nombre_obra,
tb_obra.fecha_obra,
tr_partida_materiales.codigo_material,
tb_materiales.descripcion_material,
tb_obra."cod_obra" AS tb_obra_cod_obra,
tb_obra."nombre_obra" AS tb_obra_nombre_obra,
tb_obra."fecha_obra" AS tb_obra_fecha_obra,
tb_materiales."codigo_material" AS tb_materiales_codigo_material,
tb_materiales."descripcion_material" AS tb_materiales_descripcion_material
FROM
"public"."tb_obra" tb_obra INNER JOIN "public"."tr_partida_materiales" tr_partida_materiales ON tb_obra."cod_obra" = tr_partida_materiales."codigo_material"
INNER JOIN "public"."tb_materiales" tb_materiales ON tr_partida_materiales."codigo_material" = tb_materiales."codigo_material"
WHERE
tb_obra.cod_obra = $P{codigo_obra}
  #2 (permalink)  
Antiguo 26/11/2012, 11:51
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 9 meses
Puntos: 89
Respuesta: problema como hacer una consulta a 3 tablas relacionadas

Lo raro es que te de un resultado, en los joins estás comparando peras y manzanas, en este caso codigos de obras y codigos de materiales, por no decir que te faltan dos tablas porque para unir obra con partida necesitas usar la tabla de relación y lo mismo para pasar de partidas a materiales. La query te debe quedar algo así:
Código SQL:
Ver original
  1. SELECT *
  2. FROM tb_obra TBO
  3. INNER JOIN tr_obra_partida TROP ON
  4. TBO.cod_obra = TROP.cod_obra
  5. INNER JOIN tb_partida TBP ON
  6. TROP.cod_partida = TBP.cod_partida
  7. INNER JOIN tr_partida_material TRPM ON
  8. TBP.cod_partida = TRPM.cod_partida
  9. INNER JOIN tb_material TBM ON
  10. TRPM.cod_material = TBM.cod_material
  11. WHERE TBO.cod_obra = ''

Etiquetas: relacionadas, select, tabla, tablas
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 02:24.