Ver Mensaje Individual
  #3  
Antiguo 16-11-2005
Nelet Nelet is offline
Miembro
 
Registrado: may 2003
Ubicación: Picassent - Valencia
Posts: 95
Reputación: 24
Nelet Va por buen camino
Según deduzco del comentario del SP quieres relacionar todos los contratos con los comerciales y los clientes y de los clientes los quieres todos tengan teléfono o no. No entiendo entonces los LEFT OUTER JOIN a las tablas de clientes y comerciales.

Solución propuesta:
Código SQL [-]
SELECT 
   Contratos.*
FROM
   Contratos

   /* Unisc per C.Aj amb Clientes i estos amb TelefonosCli*/
   INNER JOIN
   Clientes LEFT OUTER JOIN TelefonosCli     
                         ON TelefonosCli.CodCli_TelCli = Clientes.CodAut_Cli
   ON Clientes.CodAut_Cli = Contratos.CodCli_Con

   /* Unisc amb Comerciales */
   INNER JOIN Comerciales
      ON Comerciales.CodAut_Com = Contratos.CodCom_Con      

WHERE  
( 
   (   (Contratos.NumCon_Con LIKE '%' + @NumCon_sp + '%' )
   AND (Contratos.FecCon_Con >= @FecIniCon_sp  AND Contratos.FecCon_Con <= @FecFinCon_sp)
   AND ((Contratos.ObsCon_Con  LIKE '%' + @ObsCon_sp + '%') OR (Contratos.ObsCon_Con IS NULL))
   )
 AND
    (    ((Clientes.TipVia_Cli  LIKE '%' + @TipVia_sp + '%')
      AND (Clientes.DirCli_Cli  LIKE '%' + @DirCli_sp + '%') 
      AND ((TelefonosCli.NumTel_telCli LIKE '%' + @NumTel_sp + '%') OR(TelefonosCli.NumTel_telCli IS NULL))
    )
 AND
    (Comerciales.NomCom_Com LIKE '%' + @NomCom_sp + '%')
)

ORDER BY Contratos.TipCon_Con

Así te trae todos los contratos relacionados con los comerciales y con los clientes que tengan o no teléfono.

Por cierto....los dos lo tenéis mal....Amunt Valencia!..
__________________
_____________________________________
And follow me to where the real fun is
Responder Con Cita