Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-04-2015
jowil247 jowil247 is offline
Registrado
NULL
 
Registrado: abr 2015
Posts: 6
Poder: 0
jowil247 Va por buen camino
Mostrar ultimo registro por fecha. Varias tablas involucradas.

Hola comunidad, verán, tengo una consulta, el problema es que necesito mostrar el último registro de la tabla: elec_detalle, mediante su fecha_audita, para cada paciente, el problema es que en la tabla elec_detalle no se encuentra el idpaciente, sino que se encuentra el idelectrocardiograma de la tabla electrocardiograma, y es, esta tabla la que si se relaciona con idpaciente
Espero ser claro, de todas formas esta es mi consulta:

Código SQL [-]
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.
Responder Con Cita
  #2  
Antiguo 30-04-2015
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Prueba ejecutar la consulta en el motor de base de datos antes de hacerlo en delphi, especialmente prueba la consulta en cuestion que es una parte de esa.

Código SQL [-]
select * from elec_detalle left join electrocardiograma on electrocardiograma.idelectrocardiograma= elect_detalle.idelectrocardiograma left join paciente on electrocardiograma.idpaciente=paciente.idpaciente limit 1 order by fecha desc;


Para mostrar el ultimo puede emplear limit 1 y debe ser orden descendiente de la fecha.
Responder Con Cita
  #3  
Antiguo 30-04-2015
jowil247 jowil247 is offline
Registrado
NULL
 
Registrado: abr 2015
Posts: 6
Poder: 0
jowil247 Va por buen camino
gracias por responder, la verdad ya había solucionado el problema de mostrar el último diagnostico para c/comprobante.
El error estaba en:
Código SQL [-]
left join electrocardiograma e on p.idpaciente=e.idpaciente
lo cambié por:
Código SQL [-]
left join electrocardiograma e on c.idcomprobante=e.idcomprobante

Pero ahora me surgió otro error, lo que pasa es que algunos comprobantes tienen 2 o más "idelectrocardiogramas", en realidad este error se presenta para solo un paciente, el cual tiene 2 electrocardiograma, pero en cuanto al diagnostico de c/u obviamente si lo muestra correcto, pero debería ser SOLO 1 electrocardiograma :S
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mostrar consulta con última fecha de varias tablas jowil247 SQL 5 20-04-2015 06:03:39
mostrar datos de varias tablas relacionadas marcos_0586 Varios 6 06-10-2010 04:35:19
modificar un mismo registro en varias tablas kryna Conexión con bases de datos 1 18-03-2005 17:00:34
Copmo grabo un registro a varias tablas kia Conexión con bases de datos 4 19-07-2003 00:58:00


La franja horaria es GMT +2. Ahora son las 00:49:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi