MySQL - ¿Consulta a tres tablas?

 
Vista:

¿Consulta a tres tablas?

Publicado por Oscar (2 intervenciones) el 09/06/2014 22:53:41
Mi problema es el siguiente, tengo 3 tablas.
1.- catalogomateriales
idmaterial int pk
nombrematerial
descripcion

2.-entradasmaterial
identradasmaterial
materiales_idmateriales fk
cantidad int

3.- salidamaterial
idsalida
materialesidmateriales fk
cantidad_salida

La consulta que quiero hacer es para obtener nombre del material, la suma de todas las entradas de cada material, la suma de todas las salidas de cada material .y despues hacer la respectiva resta para obtener el total

EJEMPLO

nombre_material-----suma de las entradas-----suma de las salidas-----total
material 1--------------------250--------------------------100-----------------150
material 2-----------------------34----------------------------15-------------------19
material n.------------------------x----------------------------- x--------------------- x

HASTA EL MOMENTO TENGO LO SIGUIENTE PERO EN LA SUMA DE LAS SALIDAS NO ME SALEN LAS CORRECTAS ESTOY USANDO MYSQL

SELECT catalogomateriales.nombrematerial, sum(entradasmaterial.cantidad) AS Sumae, sum(salidamaterial.cantidadsalida) AS Sumas FROM catalogomateriales, entradasmaterial,salidamaterial WHERE catalogomateriales.idmaterial=entradasmaterial.materialesidmateriales AND catalogomateriales.idmaterial=salidamaterial.materialesidmateriales GROUP BY idmaterial

Espero haberme explicado y si alguien puede ayudarme se le agradecira micho
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 xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

¿Consulta a tres tablas?

Publicado por xve (1151 intervenciones) el 10/06/2014 07:20:18
Hola Oscar, lo suyo es que vincules las tres tablas con joins... algo así:

1
2
3
4
SELECT m.nombrematerial, sum(e.cantidad) AS Sumae, sum(s.cantidadsalida) AS Sumas
FROM catalogomateriales m
LEFT JOIN entradasmaterial e ON m.idmaterial=e.materiales_idmateriales
LEFT JOIN salidamaterial s ON m.idmaterial=s.materialesidmateriales

Puedes probarlo y comentarnos?
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

¿Consulta a tres tablas?

Publicado por Oscar (2 intervenciones) el 10/06/2014 10:21:29
ok gracias por la respuesta, voy a provar y comento
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