Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/07/2011, 09:18
Avatar de eliza_ralves
eliza_ralves
 
Fecha de Ingreso: junio-2009
Ubicación: Caracas
Mensajes: 126
Antigüedad: 14 años, 10 meses
Puntos: 2
Exclamación Consultar 3 tablas con JOIN

Hola! Tengo un problema parecido y escribo aqui para ver si entre los dos me pueden ayudar:

Resulta que necesito hacer dos consultas en una, y como lo estan haciendo con inner join me gustaria saber como seria adaptar estas dos consultas en una. La consulta general que quiero hacer es sumar las horas de los empleados que participan en un proyecto, pero para ello, primero consulte todos los empleados que pertenecen a una disciplina y oficina. Luego tomo en una variable (donde se encuentran todos los codigos) y luego hago otra consulta (casi hago el mismo filtro :( ) pero incluyendo la condición que el código del empleado que obtuve en la primera consulta me lo compare con el codigo del empleado de la tabla PARTICIPA.

aqui las dos consultas:

query1 = "SELECT Codigo
FROM dbo.SPO2_Empleado
WHERE Nombre_Disciplina = '" . $dis_select . "'
AND Codigo_Oficina = '" . $ofic_select . "' ";

query2 = "SELECT SUM(PA.Cantidad_Horas)Horas
FROM dbo.SPO2_Participa PA, dbo.SPO2_Empleado EM, dbo.SPO2_Proyecto P
WHERE PA.Codigo_Empleado = '" . $codigo_Empleado . "'
AND P.Codigo = PA.Codigo_Evento
AND EM.Nombre_Disciplina = '" . $dis_select . "'
AND EM.Codigo_Oficina = '" . $ofic_select . "'
Group by PA.Codigo_Empleado";

mi pregunta es si lo siguiente que estoy intentando es la forma correcta de hacerlo:

query = "SELECT SUM(PA.Cantidad_Horas)Horas
INNER JOIN dbo.SPO2_Participa PA on dbo.SPO2_Proyecto P
INNER JOIN
(SELECT Codigo
FROM dbo.SPO2_Empleado
WHERE EM.Nombre_Disciplina = '" . $dis_select . "'
AND EM.Codigo_Oficina = '" . $ofic_select . "')C
ON

C.Codigo = PA.Codigo_Empleado
Group by PA.Codigo_Empleado";

pero necesito comparar esto: PA.Codigo_Evento = P.Codigo ->> donde lo coloco?

__________________
“El mayor enemigo del conocimiento no es la ignorancia, sino la ilusión del conocimiento”— Stephen Hawking