Ver Mensaje Individual
  #4  
Antiguo 19-06-2019
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Reputación: 20
movorack Va camino a la famamovorack Va camino a la fama
Firebird te permite mezclar la forma en que haces los joins, pero por ej MSSQL no logra resolver los nombres de campo dentro del join. Y aunque el motor te permita hacer los joins de esta manera, en pro de la legibilidad, recomendaría mantener una sola forma de hacer los joins.

Código SQL [-]
SELECT
  A.FechaPago, A.Empleado, A.Contrato, 
  A.CodigoConcepto, B.NombreConcepto,
  A.ValorPago
FROM Pagos A, Conceptos B
INNER JOIN GruposConceptos C
  ON  A.Empresa = C.Empresa
  AND A.CodigoConcepto = C.CodigoConcepto
  AND C.CodigoGrupo = 50
WHERE A.Empresa = B.Empresa
  AND A.CodigoConcepto = B.CodigoConcepto
  AND A.Empresa = 9
  AND A.FechaPago BETWEEN '01/01/2010' AND '31/12/2019'
ORDER BY A.FechaPago, A.Empleado, A.Contrato, 
  C.PrioridadEnGrupo, B.TipoConcepto, A.CodigoConcepto

Código SQL [-]
SELECT
  A.FechaPago, A.Empleado, A.Contrato, 
  A.CodigoConcepto, B.NombreConcepto,
  A.ValorPago
FROM Pagos A
INNER JOIN Conceptos B
  ON  A.Empresa = B.Empresa
  AND A.CodigoConcepto = B.CodigoConcepto
INNER JOIN GruposConceptos C
  ON  A.Empresa = C.Empresa
  AND A.CodigoConcepto = C.CodigoConcepto
  AND C.CodigoGrupo = 50
WHERE A.Empresa = 9
  AND A.FechaPago BETWEEN '01/01/2010' AND '31/12/2019'
ORDER BY A.FechaPago, A.Empleado, A.Contrato, 
  C.PrioridadEnGrupo, B.TipoConcepto, A.CodigoConcepto

Es de anotar, que solo es legibilidad. El plan de ejecución es igual para ambas consultas
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita