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 originalSELECT *
FROM tb_obra TBO
INNER JOIN tr_obra_partida TROP ON
TBO.cod_obra = TROP.cod_obra
INNER JOIN tb_partida TBP ON
TROP.cod_partida = TBP.cod_partida
INNER JOIN tr_partida_material TRPM ON
TBP.cod_partida = TRPM.cod_partida
INNER JOIN tb_material TBM ON
TRPM.cod_material = TBM.cod_material
WHERE TBO.cod_obra = ''