SQL - Mostrar ultimo registro por fecha, Varias tablas involucrada

 
Vista:

Mostrar ultimo registro por fecha, Varias tablas involucrada

Publicado por ubisoft (2 intervenciones) el 29/04/2015 23:07:04
Hola comunidad, verán, tengo una consulta:

1
2
3
4
5
6
7
8
9
10
11
12
select distinct
c.fecha,
c.codigo,
concat(p.apellidos, ' ', p.nombres),
coalesce(if(bi='1', 'NORMAL', diagnostico), '-') as DiagnosticoElectro
from comprobante c
inner join paciente p on c.idpaciente=p.idpaciente
left join electrocardiograma e on p.idpaciente=e.idpaciente
left join elec_detalle el on e.idelectrocardiograma = el.idelectrocardiograma
and el.fecha_audita =(select max(fecha_audita) from elec_detalle el where e.idelectrocardiograma = el.idelectrocardiograma)
where (c.fecha<='2015-01-31' and c.fecha>='2015-01-01' and c.estado='1')
order by c.codigo;

esta consulta me muestra la mayoría de columnas correctamente, el problema es que no muestra un "DiagnosticoElectro" único para cada codigo del comprobante, sino que muestra a veces 2 para c/u, y ese es el problema, pues no toma la ultima fecha que supuestamente yo inclui en la consulta.
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
sin imagen de perfil
Val: 109
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Mostrar ultimo registro por fecha, Varias tablas involucrada

Publicado por Rafael (111 intervenciones) el 08/05/2015 12:58:15
Hola:

Pero vamos viendo ...
Usas dos fechas, el fecha sin mas que lo montas en el resultado, y el fecha_audita que es de donde obtienes el MAX, luego entonces no se si te das cuenta pero si te muestra dos registros por cada codigo es normal por que estas pidiendo TODAS las "fecha" cuyo "fecha_audita" sea la MAXIMA.

Vaya al menos por lo que comentas y pones me suena lógico.
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