SQL - Consulta SQL entre 3 tablas

   
Vista:

Consulta SQL entre 3 tablas

Publicado por SERGI  (7 intervenciones) el 18/01/2011 13:09:09
Hola Foreros;

A ver, tengo un problema.

Tengo tres tablas; vehicle, consum y renting.

La tabla vehicle tiene varios campos: matricula, marca_model, data_aprovacio_baixa, codi_vehicle (ID)...entre otros

La tabla consumo tiene varios campos:

Codi_consum (ID); codi_vehicle, data_consum....

La tabla renting tiene varios campos:

Codi_renting (ID), codi_vehicle, data_devolucio_vehicle,...entre otros


Debo hacer una consulta en que aparezcan los vehículos de la tabla vehicle que se han dado de baja (data aprovacio_baixa is not null) juntamente con los vehiculos de la tabla renting que también han causado baja (data_devolucio_vehicle is not null)
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

RE:Consulta SQL entre 3 tablas

Publicado por Leonardo Josué (877 intervenciones) el 18/01/2011 16:54:20
Buenos días SERGI,

Cuál es el problema que tienes? me imagino que ya comenzaste a trabajar con alguna consulta, pero no sé si la consulta te marca algún error o si la consulta no te regresa los resultados esperados.

Creo que para hacer lo que necesitas simplemente ocupas hacer un UNION entre dos consultas la primera tal como lo comentas estaría compuesta por todos los campos de la tabla vehicle con data aprovacio_baixa is not null, En la segunda parte de la consulta por lo que entendí es un filtro también de tu tabla vehicle es decir debes traer los vehículos de tu tabla vehicles cuyo codi_vehicle EXISTA en la tabla renting y que además tenga el campo data_devolucio_vehicle is not null. Si no quieres utilizar EXISTS puede simplemente utilizar una sentencia IN.

Si continuas con problemas te pido que nos muestres algo de lo que haz tratado de hacer, para ayudarte a afinar la consulta y si es posible que nos pongas algunos datos de ejemplo y qué esperas de salida.

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

RE:Consulta SQL entre 3 tablas

Publicado por Sergi (7 intervenciones) el 26/01/2011 09:55:10
Hola Leo, perdona el retraso pero finalmente encontré la solución: aquí la muestro. muchas gracias.

SELECT Vehicle.Matricula, Sum(Consum.Consum) AS SumaDeConsum, Vehicle.Marca_Model, Vehicle.data_aprovacio_baixa, Renting.Data_devolució_vehicle, vehicle.es_propi, Vehicle.Codi_Tipus, Vehicle.Codi_Carburant, Vehicle.Comentari, Vehicle.Codi_detall_organic

FROM (Vehicle LEFT JOIN Consum ON Vehicle.Codi_Vehicle = Consum.Codi_Vehicle)

LEFT JOIN Renting ON Vehicle.Codi_Vehicle = Renting.Codi_Vehicle

GROUP BY Vehicle.Matricula, Vehicle.Marca_Model, vehicle.data_aprovacio_baixa, Renting.Data_devolució_vehicle, vehicle.es_propi, Vehicle.Codi_Tipus, Vehicle.Codi_Carburant, Vehicle.Comentari, Vehicle.Codi_detall_organic

ORDER BY Sum(Consum.Consum) DESC;
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