FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Mostrar consulta con última fecha de varias tablas
Hola a toda la comunidad, verán, estoy haciendo una consulta que me muestra las personas atendidas en un mes determinado, lo malo es que hay exámenes en el cual la persona atendida cuenta con diferentes "diagnósticos" es por eso que para mostrar 1 SOLO DIAGNÓSTICO pensé en mostrar aquel que cuente con la última hora y/o fecha, esto ya que en todas las tablas de donde saco el dichoso diagnóstico cuentan con una columna así: "fecha" o si no "hora".
Este es mi código actual para la consulta:
Por ejemplo en ese mes, me muestra algo de 750 resultados, pero por ejemplo, si agrego un "and p.idpaciente='2311' " al where me muestra que ese paciente cuenta con 96 filas, cuando lo correcto sería solo 1, es por eso que busqué en cada tabla de cada examen y cada uno cuenta con una columna de fecha y/o hora, porque a veces es DATE o en algunos DATE TIME, este fue el resultado de mi búsqueda:
Esas son las columnas para conseguir el último resultado del diagnóstico o el resultado del que yo necesito. He visto casos parecidos al mío en esta comunidad y también en otras y he logrado hacer esto:
Solo hice eso para al menos que me muestre la fila de resultados de solo ese paciente, ya que en la consulta que tengo -la 1era que coloqué- éste paciente con este id muestra 96 filas Espero me puedan ayudar, gracias de antemano. |
#2
|
||||
|
||||
Hola
En mi vida vi una consulta sql tan grande Cita:
|
#3
|
||||
|
||||
Es normal, un distinct te saca una sola fila si todos los campos son iguales.
Supongo que si un paciente ha estado varias veces, en diferentes fechas, en diferentes especialidades, aparecerá. Yo lo que veo raro es que "mezcles" todo. Me refiero a ginecología, odontología, ofmaltologia... no sé. Para sacar la lista de pacientes, tendrás que sacar eso, pacientes, y no mezclar con consultas, más que para saber si un paciente a estado en un periodo o no. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#4
|
||||
|
||||
A lo que iba,
tendrías que sacar los pacientes ( veo que tienes varias tablas de consultas ) select paciente, fecha+hora, consulta from CONSULTA1 UNION select paciente, fecha+hora, consulta from CONSULTA2 UNION select paciente, fecha+hora, consulta from CONSULTA3 ... y despues AGRUPAR el resultado por paciente y quedarte con el registro de fecha mayor. select paciente, MAX(FECHA+HORA) as ULTIMACONSULTA FROM ( select paciente, fecha+hora, consulta from CONSULTA1 UNION select paciente, fecha+hora, consulta from CONSULTA2 UNION select paciente, fecha+hora, consulta from CONSULTA3 ... ) En la parte de las uniones, deberás poner las condiciones, en tu caso parece que los periodos en los que quieres saber quién ha sido atendido. Prueba a ver si así te anda, y nos comentas. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#5
|
||||
|
||||
Si no he entendido mal, me parece que lo que apunta AgustinOrtu serviría. Yo incluiría dichas fechas en el resultado de la select
(select first 1 of.fecha_audita from oftalmologia of where of.idpaciente=p.idpaciente order by of.fecha_audita DESC) y me construría una vista para poder manejarlo comodamente.
__________________
http://www.gestionportable.com |
#6
|
|||
|
|||
muchas gracias a todos por responder, disculpen por no contestarles a tiempo.
logré solucionarlo todo separando en distintas consultas por cada tipo de examen y añadiendo esto:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
consulta SQL varias tablas | pmtzg | SQL | 0 | 02-02-2012 06:05:03 |
mostrar datos de varias tablas relacionadas | marcos_0586 | Varios | 6 | 06-10-2010 03:35:19 |
Consulta con varias tablas | marilinspi | SQL | 4 | 30-10-2007 22:40:48 |
consultar ultima fecha y ultima hora | KeyMan | MySQL | 3 | 07-02-2007 16:50:25 |
|