Ver Mensaje Individual
  #3  
Antiguo 03-11-2005
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Reputación: 21
Cabanyaler Va por buen camino
Lo primero gracias.

Sí, eso entiendo que es el resultado del LEFT INNER JOIN, pero sin resumir la consulta y a falta de las declaraciones de los parametros, expongo la consulta completa:
Código SQL [-]
SELECT 
   Contratos.*

FROM
   Contratos

   /* Uno por C.Aj con Clientes y estos con TelefonosCli*/
   LEFT OUTER JOIN
   Clientes LEFT OUTER JOIN TelefonosCli     
                         ON TelefonosCli.CodCli_TelCli = Clientes.CodAut_Cli
   ON Clientes.CodAut_Cli = Contratos.CodCli_Con

WHERE  
   ( 
   (   (Contratos.NumCon_Con LIKE '%' + @NumCon_sp + '%' )
   AND (Contratos.FecCon_Con >= @FecIniCon_sp  AND Contratos.FecCon_Con <= @FecFinCon_sp)
   AND (Contratos.FecEnt_Con >= @FecIniEnt_sp  AND Contratos.FecEnt_Con <= @FecFinEnt_sp)
   AND (Contratos.TipCon_Con   LIKE '%' + @TipCon_sp + '%')
   AND (Contratos.ExeCon_Con  = @ExeCon_sp)
   AND (Contratos.MotExe_Con   LIKE '%' + @MotExe_sp + '%')
   AND (Contratos.Obs2Con_Con LIKE '%' + @Obs2Con_sp + '%')
   AND (Contratos.DesPro_Con    LIKE '%' + @DesPro_sp + '%')
   AND (Contratos.FecAvi_Con >= @FecIniAvi_sp  AND Contratos.FecAvi_Con <= @FecFinAvi_sp)
   AND (Contratos.TotCon_Con >= @TotConIni_sp AND Contratos.TotCon_Con  <= @TotConFin_sp)
   AND (Contratos.EntCeg_Con   = @EntCeg_sp)
   AND (Contratos.EntDis_Con    = @EntDis_sp)
   AND ((Contratos.ObsCon_Con  LIKE '%' + @ObsCon_sp + '%') OR (Contratos.ObsCon_Con IS NULL))
   )

 AND

         ((Clientes.TipVia_Cli  LIKE '%' + @TipVia_sp + '%')   /* Tots els Clientes que pasen els filtres amb determinat TelefonoCli*/
      AND (Clientes.DirCli_Cli  LIKE '%' + @DirCli_sp + '%') 
      AND (Clientes.NumPto_Cli  LIKE '%' + @NumPto_sp + '%') 
      AND (Clientes.NumPta_Cli  LIKE '%' + @NumPta_sp + '%') 
      AND (Clientes.EscCli_Cli  LIKE '%' + @EscCli_sp + '%') 
      AND (Clientes.NomCli_Cli  LIKE '%' + @NomCli_sp + '%') 
      AND (Clientes.DniCli_Cli  LIKE '%' + @DniCli_sp + '%') 
      AND (Clientes.LetCif_Cli  LIKE '%' + @LetCif_sp + '%') 
      AND (Clientes.PobCli_Cli  LIKE '%' + @PobCli_sp + '%') 
      AND (Clientes.CodPos_Cli  LIKE '%' + @CodPos_sp + '%') 
      AND (Clientes.RefCli_Cli  LIKE '%' + @RefCli_sp + '%') 
      AND (Clientes.CodCli_Cli  LIKE '%' + @CodCli_sp + '%')) 
      AND TelefonosCli.NumTel_telCli LIKE '%' + @NumTel_sp + '%' 
)

ORDER BY Contratos.TipCon_Con

Esto debería retornar todas las tuplas de la tabla Contratos que cumplen las condiciones del WHERE propias de los Contratos además de que las tuplas del Cliente asociado que cumplan tambien las condiciones del WHERE de los Clientes y el telefono del cliente tambien pase el filtro . Además de todos los Contratos que por estar unidos por el LEFT INNER JOIN no tengan o bien clientes o clientes sin telefono.

¿NO? Créeme, ójala esté equivocado!!
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.

Última edición por vtdeleon fecha: 04-11-2005 a las 12:09:15. Razón: Etiqueta SQL
Responder Con Cita