Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Complicacion En Join - Ayuda Please!! (https://www.clubdelphi.com/foros/showthread.php?t=22206)

marceloalegre 09-06-2005 02:56:12

Complicacion En Join - Ayuda Please!!
 
Que tal, les molesto para ver como "re armo mi join" que se me esta complicando mucho:
La situacion es asi: tengo estas sentencia sql en una query de mi programa en dephi, la cual utilizo para armar los campos de una grid devexpress (aunque es irrelevante, les comento que trabajo con interbase):

select
EVENTOSAUDITABLES.FECHAHORA,
OPERADORES.APELLIDO||' '||OPERADORES.NOMBRE as OPERADOR,
EVENTOS.DESCRIPCION as EVENTO_real,
EVENTOSAUDITABLES.NOTA,
ideventoauditable
from
EVENTOSAUDITABLES
left outer join OPERADORES on (EVENTOSAUDITABLES.IDOPERADOR = OPERADORES.IDOPERADOR), EVENTOS
where
(EVENTOSAUDITABLES.IDEVENTO = EVENTOS.IDEVENTO) and
(fechahora >= :fecini) and
(fechahora <= :fecfin)
order by ideventoauditable


O sea en resumen: junto 2 tablas, les pongo alias para tener todo bien organizado, y saco la info que necesito, un poco de cada tabla...
...eso lo entiendo perfertamente cuando es con 2 tablas...
ahora bien, necesito poner otra tabla para sacar mas datos, la tabla tiene los siguientes campos:

TABLA TICKETS

Campos:
IDCUENTA PK NOT NULL
IDPUESTO FK
IDOPERADOR FK(OPERADORES) NOT NULL -- ACA ESTARIA MI RELACION CON LO ANTERIOR!!
idticket *
TOTALIMPUESTO1 *
TOTALIMPUESTO2 *
TOTAL *
IMPRESO
USODELSERVICIO
Y MAS....

BUENO, NECESITO UNIR A MI CONSULTA ANTERIOR LOS CAMPOS MARCADOS CON * IDOPERADOR SERIA EL QUE ME RELACIONA TODO, PERO MMM COMO MODIFICO MI CONSULTA!!!.Se me complica mucho trabajar con los join.

Les agradeceria si alguien me puede mostrar como seria la modifación que tengo que realizar para incluir otra tabla, es para un trabajo muy importate se los voy a agradecer muchisimo.
MUCHAS GRACIAS.

defcon1_es 09-06-2005 11:35:40

Hola, has probado esto?

Código SQL [-]
select EVENTOSAUDITABLES.FECHAHORA,
         OPERADORES.APELLIDO||' '||OPERADORES.NOMBRE as OPERADOR,
         EVENTOS.DESCRIPCION as EVENTO_real,
         EVENTOSAUDITABLES.NOTA,
         EVENTOSAUDITABLES.ideventoauditable,
         TICKETS.IDTICKET,
         TICKETS.TOTALIMPUESTO1,
         TICKETS.TOTALIMPUESTO2,
         TICKETS.TOTAL
from EVENTOSAUDITABLES

  left outer join OPERADORES 
  on (EVENTOSAUDITABLES.IDOPERADOR = OPERADORES.IDOPERADOR), EVENTOS **

  left outer join TICKETS 
  on (EVENTOSAUDITABLES.IDOPERADOR = TICKETS.IDOPERADOR)

where (EVENTOSAUDITABLES.IDEVENTO = EVENTOS.IDEVENTO) and
         (EVENTOSAUDITABLES.fechahora >= :fecini) and                                                                   
         (EVENTOSAUDITABLES.fechahora <= :fecfin)
order by EVENTOSAUDITABLES.ideventoauditable

**Esa forma de hacer un JOIN no la habia visto antes...


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

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