Datos introducidos en los programas Sqlserver y Visual Studio 2008. Tratamiento de la información

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

566.625 pts. Desarrollador de aplicaciones en plataforma
La fecha y hora del servidor sql al optiones con GetDate(), un Select Getdate() te devuelve al fecha y hora del servidor.
Con respecto a lo otro es confuso, lo siento no entiendo en donde esta tu problema..
Pero por las horas, yo crearía una tabla en donde están los horarios, 8, 8:15, etc. con un código, y la tabla de asignaciond e cita al paciente esta con ese código, para llenar el calendario, pues reviso que ese medico tenga los 16 códigos, o los 8 códigos del tipo que ande buscando.
Quisiera ser más diresto con la pregunta pero para eso quisiera tu msn o que tu me agrages para poder mandate un correo con lo que estoy haciendo
Verifica als relaciones de las tablas
Pues he realizado verificaciones pues y quisiera tu ayuda para eso te doy mi msn (xxxxxx) para enviarte archivos pues agrégame ok
Yo crearia uan tabla asI:
Id, hora inicio, hora final para los horarios, este id es el que asigno en la tabla de citas.
Para validar cuales les puede asignar al medico verificas el horario del medico con esta tabla, así sabes cuales de estos horarios se le puede asignar a las citas de ese medico.
Con esta consulta maneje los ce-1 pero no pude con los ce-2 aunque la dificultad esta más en manerjar las horas para que se llene mi comobo horas..
En la tabla citas no hay registros si nunca el paciente efectúa su cita medica solo exiten registros en la tabla cronograma de las cuales el paciente visualizara claro tomando en cuenta la tabla cita mientras no llegue a 16 del medico de esa fecha de ese servicio pz todo esta bien si no la fecha ya no me aparece en el calendar ...
Bueno tu me dices que cambie las relaciones pues como seria cuanto cambiaría mi consulta .. gracias y si puedes agrégame pz
alter procedure [dbo]. [usps_fechas_disponiblexservicio]
@ID_SERVICIO AS INT,
@FECHA AS DATETIME
AS
select medico=(medico.A_Pmedico +' '+medico .A_Mmedico +' '+MEDICO .NOMB_MEDICO) ,CONSULTORIO .NOMB_CONSULTORIO , fecha,cronograma.id_medico,cronograma .ID_PROGRAMACION,cronograma .ID_ACTIVIDAD,cronograma.ID_CONSULTORIO ,CRONOGRAMA .ID_CRONOGRAMA ,CRONOGRAMA .ID_SERVICIO from cronograma
INNER JOIN consultorio ON cronograma.ID_consultorio=consultorio .ID_CONSULTORIO
INNER JOIN MEDICO ON cronograma .ID_medico =medico .ID_medico where (select count(s.fecha) from CITA s
where s.fecha=cronograma.fecha and s.id_medico=cronograma.id_medico) <=15 AND cronograma .ID_ACTIVIDAD ='CE-1' AND cronograma .ID_SERVICIO [email protected]_SERVICIO AND cronograma .FECHA >@FECHA
ORDER BY cronograma .FECHA ASC
Supongo que no te funciona con CE-2 porque tienes ese dato "quemado" en la sentencia y no lo tiuenes como un parámetro, debes cambiar el valor por una parámetro igual a los otros.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas