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 28-12-2006
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 21
sitrico Va por buen camino
Select en varias tablas

Tengo que generar una consulta que une 3 tablas:

- Horarios
- Citas
- Pacientes

En Horarios se encuentra una lista de "horas" para un día de la semana X: 9:00, 9:30, 10:00...19:30 en fin las horas de inicio de las citas (cada 30Min) y cada una tiene un IDHorario unico
En Citas tengo los campos: IdCita, fecha, IdHorario y ID Paciente
En Pacientes tengo IdPaciente, Nombre

Lo que Quiero Obtener es una consulta (simplificando las cosas) que tenga para una fecha dada:

idHorarios.Hora, IdPaciente.Nombre
9:00 <null>
9:30 Pedro Perez
10:00 <null>
....
19:30 <null>

El problema es que esta sentencia no me incluye los horarios no asignados (<null>)

Código SQL [-]
Select c.fchcita,  h.Hora, p.nombre from "Horarios" H, "Citas" C, "Pacientes" P
Where c.idpaciente = p.idpaciente And H.idhorario = c.idhorario
Order By FchCita, Hora

PD uso Firebird 2 con IBExpert

Creo que hay que usar un left join pero no me entiendo mucho con SQL
gracias por cualquier ayuda
__________________
Sitrico
Responder Con Cita
  #2  
Antiguo 28-12-2006
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 21
sitrico Va por buen camino
Probando logre esto:

Código SQL [-]
select H.*, C.* From  "Horarios" H
       Left join "Citas" C On H.idhorario = c.IdHorario
Where DiaSem = 1 And IdArea = 1

Me devuelve los datos que nececito (pero falta el nombre del paciente) ahora la pregunta seria: ¿como incorporo la tercera tabla?
__________________
Sitrico
Responder Con Cita
  #3  
Antiguo 29-12-2006
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 21
sitrico Va por buen camino
Y al final esto:

Código SQL [-]
select H.Hora, p.nombre, p.Apellido
From  "Horarios" H Left join "Citas" C On H.idhorario = c.IdHorario
                   Left Join "Pacientes" P On C.idpaciente = p.idpaciente
Where DiaSem = 1 and IdArea = 1
__________________
Sitrico
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
Usar varias tablas CONY Conexión con bases de datos 18 13-10-2006 22:59:19
Escribiendo en varias tablas maravert Tablas planas 1 20-10-2005 17:53:16
Apertura de Varias Tablas luxus Conexión con bases de datos 5 08-09-2005 13:37:34
Trabajar con varias tablas luxus Conexión con bases de datos 3 22-08-2005 18:32:15
5 select de 5 tablas diferentes en un select solo sakuragi SQL 6 15-06-2005 18:57:06


La franja horaria es GMT +2. Ahora son las 18:58:41.


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