Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-06-2019
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 17
TOPX Va camino a la fama
Cita:
Empezado por Angel.Matilla Ver Mensaje
Código SQL [-]
  FROM Poblacion A, Mesas B, DatMes C 
  LEFT JOIN Resultados D ON C.Codigo = D.Mesa AND C.Proceso = D.Proceso
Esa sintaxis para consultar cuatro tablas, ¿sí es permitida? Pregunto porque no lo sé.

De todas maneras yo plantearía la consulta más uniforme:
o especificando cada tabla con su respectivo JOIN
o incluyendo todas las tablas en el FROM.
-
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #2  
Antiguo 19-06-2019
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por TOPX Ver Mensaje
Esa sintaxis para consultar cuatro tablas, ¿sí es permitida? Pregunto porque no lo sé.
Gracias por la respuesta. Al final anoche di con el error y es que estaba referenciando mal una de las tablas. Al margen de eso la sintaxis es correcta; lo que planteas de meter todas las tablas en el FROM no me valdría porque en la tabla Resultados puede o no haber datos para las mesas y necesito sacar todas las mesas, tengan o no datos grabados en esa tabla. Y poner a cada una de ellas un JOIN no sería solución: Las tres primeras tablas siempre van a tener todos los datos por lo tanto sé seguro que de ellas siempre van a salir resultados en el query.
Responder Con Cita
  #3  
Antiguo 19-06-2019
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 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
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = -104 Token MALBOTO22 PHP 8 06-05-2015 19:22:39
ERROR incomprensible de SQL en Delphi 2006 Softweb SQL 3 03-10-2008 15:27:16
TQuery y Paradox. Incomprensible. Repelus Conexión con bases de datos 4 01-05-2008 07:05:28
Error Incomprensible altp Varios 5 23-11-2006 18:23:49
error incomprensible HugoH Conexión con bases de datos 2 04-05-2004 12:41:19


La franja horaria es GMT +2. Ahora son las 16:48:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi