INNER JOIN...

17/10/2003 - 21:38 por Fabricio Cadena | Informe spam
Hola amigos..!
Tengo el siguiente problema...

Resulta que tengo 3 Tablas.
1-Empleados
2-Encargados
3-Solicitantes

Bien.. tengo 2 Empleados llamados asi.
1=Manuel
2=Ruben
Manuel tiene 1 Encargado y 1 Solicitante
y Ruben solo tiene 1 Encargado.

Resulta que al hacer los JOIN de las 3 Tablas me muesta lo
siguiente..

Resultados de la Consulta...

Empleado Encargados Solicitantes
Manuel 1 1

PORQUE NO APARECE RUBEN?Sera porque solo tiene 1 Encargado
y no tiene Solicitantes?
Como puedo hacer para mostrar a RUBEN aunque este tenga 1
Encargado, pero que en Solicitantes no me muestre nada o 0.

Saludos y espero haberme explicado.

Preguntas similare

Leer las respuestas

#6 Javier Loria
18/10/2003 - 17:56 | Informe spam
Hola Fabricio:
El HAVING te esta filtrando los datos aun cuando el LEFT JOIN los deja
pasar, especificamente las que tienen que ver con las entregas:
==AND Convert(char(1),Entregas.Pagado)=0
AND Entregas.Concepto<>'SI'
==No puedo probarlo porque no tengo las tablas :(
Pero podria ser algo como:
==AND (Convert(char(1),Entregas.Pagado)=0 OR
Entregas.Pagado IS NULL)
AND (Entregas.Concepto<>'SI' OR
Entregas.Concepto IS NULL)
==Que en principio me parece deberian ser condiciones de un WHERE y no del
HAVING. Las condiciones del WHERE se evaluan antes del agrupamiento mientras
que las de HAVING se evaluan despues del agrupamiento.

Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Fabricio Cadena escribio:
Que tal amigos..!!

Aqui esta mi consulta que he batallado mucho.Si no se
entiende la puedo explicar

Select Fleteros.Id_Fletero,Fleteros.Nombre as
Fletero,Choferes.Id_Chofer,Choferes.Nombre as Chofer
,sum(Embanques.volumen*Parajes.Precio) as TotalE,sum
(Entregas.Cantidad) as TotalEnt
from Choferes
INNER JOIN Fleteros ON
Choferes.Id_Fletero=Fleteros.Id_Fletero
INNER JOIN Embanques ON
Embanques.Id_Chofer=Choferes.Id_Chofer
INNER JOIN Parajes ON Embanques.Id_Paraje=Parajes.Id_Paraje
' HE AQUI LA SITUACION DE UN CHOFER QUEN O TIENE
ENTREGAS, PERO SI TIENE EMBANQUES, AL MOMENTO DE HACER LA
CONSULTA NO APARECE... EN ESTE CASO SERIA EL CHOFER 10
LEFT JOIN Entregas ON Choferes.Id_Chofer=Entregas.Id_Chofer

GROUP BY
Fleteros.Id_Fletero,Fleteros.Nombre,Choferes.Id_Chofer,Chof
eres.Nombre,Convert(char(1),Embanques.Pagado)
,Convert(char(1),Entregas.Pagado),Entregas.Concepto


HAVING Choferes.Id_Chofer IN(9,10) AND Convert(char
(1),Embanques.Pagado)=0
AND Convert(char(1),Entregas.Pagado)=0 AND
Entregas.Concepto<>'SI'
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida