SQL - Duda sobre consulta de fecha máxima

 
Vista:
sin imagen de perfil
Val: 10
Ha disminuido su posición en 7 puestos en SQL (en relación al último mes)
Gráfica de SQL

Duda sobre consulta de fecha máxima

Publicado por Josue (6 intervenciones) el 06/10/2020 11:44:51
Hola a tod@s!!

Quería hacerles una consulta en la que estoy un poco trabado.
Tengo dos tablas, una de pacientes y otra de consultas, en ésta última de consultas se registran todas las consultas a las que asiste cada paciente.

Lo que quiero es hacer un select en el que pueda ver de cada paciente la última consulta que se ha registrado (mediante el campo de FechaConsulta) pero además de consultas que sean de hace más de tres meses, es decir que no me cuente las consultas a las que han asistido los últimos tres meses.

Las tablas se unen mediante el campo pacienteId

La consulta que intenté fué esta...

1
2
3
select p.pacienteId, p.nombre, MAX(c.FechaConsulta) from Paciente
JOIN Consultas c on p.pacienteId = c.pacienteId
where MAX(c.fechaConsulta) < '20200706'

Obviamente tiene muchos fallos, pero no consigo averiguar como hacerlo. Si alguien sabe, toda ayuda me vendría bien.

Muchísimas gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Duda sobre consulta de fecha máxima

Publicado por Isaias (1921 intervenciones) el 06/10/2020 19:09:29
¿En que motor de base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha disminuido su posición en 7 puestos en SQL (en relación al último mes)
Gráfica de SQL

Duda sobre consulta de fecha máxima

Publicado por Josue (6 intervenciones) el 06/10/2020 19:46:41
Hola Isaias estoy en SQL Server.

He hecho algún avance realizando una subconsulta....

1
2
3
select  pacienteId,  (select MAX(fechaCreado) from Consultas
where pacienteId = p.pacienteId)
from Paciente p

Con este select obtengo la consulta más reciente de cada paciente. Ahora lo que me falta es no mostrar los pacientes cuya consulta más reciente es de los últimos 3 meses, por ejemplo.

Muchas gracias! un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Duda sobre consulta de fecha máxima

Publicado por Isaias (1921 intervenciones) el 07/10/2020 19:42:43
En ese caso, deberías tomar el rango de los 3 meses, ¿Cómo se hace eso?, con un DATEDIFF(MM, TUFECHA, GETDATE()) =< 3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de gilman
Val: 184
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Duda sobre consulta de fecha máxima

Publicado por gilman (103 intervenciones) el 08/10/2020 08:15:31
Prueba:
1
2
3
4
SELECT p.pacienteId, p.nombre, MAX(c.FechaConsulta) FROM Paciente
JOIN Consultas c on p.pacienteId = c.pacienteId
GROUP BY p.pacienteId, p.nombre
HAVING MAX(c.fechaConsulta) < '20200706'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha disminuido su posición en 7 puestos en SQL (en relación al último mes)
Gráfica de SQL

Duda sobre consulta de fecha máxima

Publicado por Josue (6 intervenciones) el 08/10/2020 13:28:30
Muchas gracias chicos!
Al final lo he resuelto con el HAVING, aunque las dos opciones funcionan bien, lo hice con HAVING y de paso aprovecho y repaso un poco ésta cláusula.
Problema resulto.

Muchísimas gracias!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar