Lo que quiero conseguir en la consulta no sobre cargue demasiado programo en Visul Studio 2008

Sqlserver 2008 visua studio 2008
Tengo una tabla medico, actividad, consultoriomedico, mis tablas principales son cronograma y cita medica
cronograma esta compuesto de
(ID_CRONOGRAMA,ID_PROGRAMACION,ID_SERVICIO,ID_MEDICO,ID_ACTIVIDAD,ID_CONSULTORIO,FECHA,HORAINICIO,HORA FIN)
Acá tengo dos médicos que perntenecen al mismo servicio pero tienen horarios similare así como también hay otros que tienen horarios diferentes...
1//1//1//1//CE-1//1//01/01/2011//8:00:00//12:00:00
1//1//1//1//I-C//1//01/01/2011//12:00:00//13:00:00
1//1//1//1//C-2//1//02/01/2011//08:00:00//10:00:00
1//1//1//1//P//1//01/02/2011//10:00:00//12:00:00
1//1//1//1//CE-1//1//01/03/2011//8:00:00//12:00:00
1//1//1//1//I-C//1//01/03/2011//12:00:00//13:00:00
1//1//1//2//CE-1//2//01/01/2011//8:00:00//12:00:00
1//1//1//2//I-C//2//01/01/2011//12:00:00//13:00:00
1//1//1//2//C-2//2//02/01/2011//08:00:00//10:00:00
1//1//1//2//P//2//01/02/2011//10:00:00//12:00:00
1//1//1//2//CE-1//2//01/03/2011//8:00:00//12:00:00
1//1//1//2//I-C//2//01/03/2011//12:00:00//13:00:00
mi tabla cita:para la reserva depende del cronogramaprimer paso se elige el servicio medicoy despues tengo dos radiobuton para elegir k kiero visualizar la disponibilidad por medico del servicio o disponibilidad de tods los medicos del servicio. Esta consulta llena el calendar con todas la fcechas disponibles , luedo enotro paso yo selecciona la fecha y n un combo o list semuestra las horas disponibles para esa fecha   es
...(ES AHI DONDE TENGO PROBLEMAS PUES .... )PASO DESPUES ME VOYA AL INTERFAZ DE PAGO.....
Pero quiero que me ayudes en la consulta de fecha y horas primeramente el medico no puede exceder las 16 citas por día para ce-1
del
 CRONOGRAMA SOLO ME INTERSEA LOS CE-1 QUE  SON CITAS MEDICAS DE 8:00:00 A 12:00:00 CON UNA CANTIDAD DE 16 CITAS AL DIA Y TAMBIEN ME INTERESA LOS CE-2 QUE SON CITAS DE  8:00:00 A 1O:00:00 ....CON UNA CANTIDAD DE 8 CITAS AL DIA
MI TABLA CITA ES LA SIGUIENTE (ID_CITA,ID_CRONOGRAMA,ID_PROGRAMACION,ID_SERVICIO,ID_MEDICO,ID_ACTIVIDAD,ID_CONSULTORIO,FECHA,HORA,ESTADO)1/1//1//1//1//CE-1//1//01/01/2011//8:15-08:30//P
1/1//1//1//1//CE-1//1//01/01/2011//9:15-09:30//P                                                       1/1//1//1//1//CE-1//1//01/01/2011//10:00-10:15//P
1/1//1//1//1//CE-1//1//01/01/2011//08:00-08:15//P
1/1//1//1//1//CE-1//1//01/01/2011//11:00-11:15//P
1/1//1//1//1//CE-1//1//01/01/2011//11:30-11:45//P
1/1//1//1//2//CE-1//1//01/01/2011//09:00-09:15//P
1/1//1//1//2//CE-1//1//01/01/2011//09:30-09:45//P
en estaprimera parte se observa que hay 8citas para una fecha y de un medico pero en si hay las mismas horas y fechas con otros médicos y del mismo servicio claro esto depende del cronograma
en esta caso la fecha se mostrá en el calendar pues ce-1 osea consulta externa de 8:00 a 12:00 y hay 16 citas para este cso pero en el otro si la actividad fuera ce-2 osea consulta externa de 8:oo a 10:00 esta fecha ya no semostrara porque ya fuera más de 8 citas pero si fuera menos de 8 si se mostraría la fecha hasta ahí más o menos que la hago pero necesito tu ayuda pero más aun para las horas disponibles osea en el combo o list se tendar que mostrar si es C-1
8:30-8:45
8:45-9:00
9:45-10:00
10:15-10:30
10:30-10:45
10:45-11_00
11:15-11:30
11:45-12:00
AHORA PONGAMOLES QUE EN ESA FECHA HAY SOLO 4 CITAS Y LA ACTIVIDAD EN CE-2
1/1//1//1//1//CE-1//1//01/01/2011//8:15-08:30//P
1/1//1//1//1//CE-1//1//01/01/2011//9:15-09:30//P                                                       1/1//1//1//1//CE-1//1//01/01/2011//08:45-09:00//P
1/1//1//1//1//CE-1//1//01/01/2011//08:00-08:15//P
EN  MI COMBO O LIST
APARECERIA
8:30-8:45
9:00-09:15
9:30-09:45
9:45-10:00
Claro pero lo que quisiera lograr es tener en cuenta la fecha y hora del servidor para que no salgan fechao horas inncecesarias y listo lo que quiero conseguir en la consulta no sobre cargue demasiado programo en visula studio 2008 vb y utilizo sqlserver 2008
espero pues tu respuesta de la consulta si me prodiras poner la consulta respuesta ahí.. Espero me ayas entendido amigo... O si mejor pudiera enviar un ejercicio pues mi msn en (xxxxxx)@hotmail.
1

1 Respuesta

136.925 pts.
Yo lo que haría en ese caso es crear una tabla con las citas al momento de crear el cronograma, o sea:
Tomar al medico, y asignarle su horario (ya sea de 8 - 10 o de 8 - 12), cuando le de "GRABAR" entonces procedo a insertar en una tabla llamada CITAS, ya sea 8 o 16 citas, en los horarios establecidos 8:00 - 8:15, 8:15 - 8:30.. etc. Esta tabla citas necesita un campo de "Status" que guarde si ya fue asignada o no. O poder determinar de alguna manera si está libre.
Entonces la consulta quedaría bien sencilla
select * from citas where fecha = [fecha] and id_status = 'L' order by Hora_inicio;
Id_status podría tener L al momento de estar libre y O cuando esté ocupada. Entonces ya solo es tomar el registro y proceder a llenarlo con la información de la cita. Inconvenientes, bueno, el único que le veo es tener registros que nunca se utilizarán porque nunca hubo cita en esa hora, pero se puede corregir después haciendo una consulta que elimine todos esos registros para fechas pasadas.
Saludos,
Julius (Guatemala)
www.asistedigital.com

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas