Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda muy urgente por favor!!!!!

Estas en el tema de Ayuda muy urgente por favor!!!!! en el foro de Bases de Datos General en Foros del Web. wenas a todos necesito ayuda urgentisima con una consulta.El anunciado dice tal que asi: -con las guientes tablas queremos pedir un dia por teclado y ...
  #1 (permalink)  
Antiguo 23/11/2009, 10:52
 
Fecha de Ingreso: noviembre-2009
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
Exclamación Ayuda muy urgente por favor!!!!!

wenas a todos necesito ayuda urgentisima con una consulta.El anunciado dice tal que asi:

-con las guientes tablas queremos pedir un dia por teclado y obtener las citas libres en ese dia, es decir, las horas que no tienen cita.

Pacientes (Numero_historia, DNI, Nombre, Fecha_nacimiento, Dirección, Ciudad, Teléfono)

Médicos (Código, Nombre_medico, Dirección, Ciudad, Teléfono, Email, Nombre_especialidad)

Citas (Numero_historia, Código, Fecha_visita, Hora, Precio)

Las horas válidas son: 10, 11, 12, 13, 16, 17, 18 y 19 horas.

Especialidades (Nombre_especialidad, Descripción, Prestaciones_Seguro)

Prestaciones_Seguro indica si esa especialidad está cubierta por el seguro o no.
  #2 (permalink)  
Antiguo 23/11/2009, 15:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Ayuda muy urgente por favor!!!!!

Jesus89,
¿tienes una tabla con las horas o simplemente tecleas la hora como número en la base en el campo hora de la tabla Citas?
  #3 (permalink)  
Antiguo 24/11/2009, 01:03
rqd
 
Fecha de Ingreso: julio-2008
Mensajes: 228
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: Ayuda muy urgente por favor!!!!!

yo haría una tabla de horasdecita(hora) con los valores (10,11,12,13...) y luego un left join con la tabla de citas
  #4 (permalink)  
Antiguo 24/11/2009, 03:14
 
Fecha de Ingreso: noviembre-2009
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
Exclamación Respuesta: Ayuda muy urgente por favor!!!!!

Las horas y las fechas las introduzco yo. La consulta me pide teclear una fecha y que me devuelva las horas libres que tiene esa fecha.
  #5 (permalink)  
Antiguo 24/11/2009, 10:39
 
Fecha de Ingreso: noviembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda muy urgente por favor!!!!!

Jesus89, Yo haria una consultas de muxos a muxos
  #6 (permalink)  
Antiguo 24/11/2009, 11:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Ayuda muy urgente por favor!!!!!

Creo que debes seguir el consejo de rqd y crear esa tabla con las horas, sólo crearla e incluir esos 8 datos. Contra ella podemos hacer la consulta. Imagina que tienes la tabla horas con los campos, id, hora. Te advierto que a mí no me gusta que introduzcas números en un campo de hora. Imagina que en el futuro quieres hacer citas cada media hora, etc. Yo usaría un campo time y guardaría el id correspondiente a cada hora en la tabla citas. No obstante, si creas esa tabla con el campo hora tipo INT, como tienes, creo, en la tabla citas, y si indexas ese campo int, te resultará fácil hacer lo que quieres.
No nos has dicho qué base usas, qué motor...
SELECT horas.hora FROM hora LEFT JOIN citas ON horas.hora = citas.hora WHERE horas.fecha = '2009-05-20' AND citas.hora IS NULL
o alguna otra como esta
SELECT horas.hora FROM horas WHERE horas.hora not in (select citas.hora from citas where citas.fecha = '2009-05-20')

No las he probado, pero creo que funcionarán
  #7 (permalink)  
Antiguo 24/11/2009, 12:00
 
Fecha de Ingreso: noviembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda muy urgente por favor!!!!!

Cita:
Iniciado por jurena Ver Mensaje
Creo que debes seguir el consejo de rqd y crear esa tabla con las horas, sólo crearla e incluir esos 8 datos. Contra ella podemos hacer la consulta. Imagina que tienes la tabla horas con los campos, id, hora. Te advierto que a mí no me gusta que introduzcas números en un campo de hora. Imagina que en el futuro quieres hacer citas cada media hora, etc. Yo usaría un campo time y guardaría el id correspondiente a cada hora en la tabla citas. No obstante, si creas esa tabla con el campo hora tipo INT, como tienes, creo, en la tabla citas, y si indexas ese campo int, te resultará fácil hacer lo que quieres.
No nos has dicho qué base usas, qué motor...
SELECT horas.hora FROM hora LEFT JOIN citas ON horas.hora = citas.hora WHERE horas.fecha = '2009-05-20' AND citas.hora IS NULL
o alguna otra como esta
SELECT horas.hora FROM horas WHERE horas.hora not in (select citas.hora from citas where citas.fecha = '2009-05-20')

No las he probado, pero creo que funcionarán
Señorita en modo SQL no, el caballero te pide de como hacerla en modo consultas de diseño, por cierto usted no tendra unas instrucciones de como de hace para hacerle una foto.........
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 05:33.