Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Mostrar ultimo estado de una solicitud(registro)

Estas en el tema de Mostrar ultimo estado de una solicitud(registro) en el foro de Mysql en Foros del Web. Tengo esta consulta que me hace un JOIN con diferentes tablas, la cuestion es que cada solicitud puede tener diferentes estados, y al ejecutar este ...
  #1 (permalink)  
Antiguo 20/02/2013, 16:06
 
Fecha de Ingreso: noviembre-2012
Ubicación: Villa Maria, Peru
Mensajes: 46
Antigüedad: 11 años, 5 meses
Puntos: 0
Mostrar ultimo estado de una solicitud(registro)

Tengo esta consulta que me hace un JOIN con diferentes tablas,
la cuestion es que cada solicitud puede tener diferentes estados, y al ejecutar este query, me devuelve 2 registros, ya que esta solicitud hasta ahora tiene 2 estados: "SIN REVISAR" Y "REVISADO";
COMO HACER PARA QUE EN LA CONSULTA ME DEVUELVA SOLO EL ULTIMO ESTADO DE ESA SOLICITUD?
Código MySQL:
Ver original
  1. c.nombre_cl) AS nombre_cli,
  2. e.descripcion as estado,
  3. e.idestado,
  4. if (se.usuario_idusuario is NULL,'NO ASIGNADO',CONCAT(u.nombre_u,' ',u.apellido_u)) as tecnico,
  5. se.fecha_inicio,
  6. se.nota_estado,
  7. s.idsolicitud,
  8. s.modelo,
  9. s.fecha_registro,                                        
  10. s.fecha_compromiso,                                            
  11. s.defecto_segun_cliente
  12. FROM solicitud s
  13. INNER JOIN cliente c ON s.cliente_idcliente = c.idcliente
  14. INNER JOIN solicitud_has_estado se ON s.idsolicitud = se.solicitud_idsolicitud
  15. INNER JOIN estado e ON se.estado_idestado= e.idestado
  16. LEFT JOIN usuario u ON se.usuario_idusuario = u.idusuario
  17. WHERE s.estado = '1'

Última edición por gnzsoloyo; 20/02/2013 a las 17:16 Razón: Mal etiquetado
  #2 (permalink)  
Antiguo 21/02/2013, 06:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Mostrar ultimo estado de una solicitud(registro)

Deberias darnos la estructura de las tablas para poder aconsejarte...

Pero imaginando la tabla donde guardas los estados debe tener un campo datetime para cada estado luego debes seleccionar la fecha maxima....

Código MySQL:
Ver original
  1. SELECT idsolicitud,max(fechaEstado) FROM solicitud_has_estado GROUP BY idsolicitud

un INNER JOIN con esta query te dara el ultimo estado de cada solicitud...

Código MySQL:
Ver original
  1. ...
  2. INNER JOIN solicitud_has_estado se ON s.idsolicitud = se.solicitud_idsolicitud
  3. INNER JOIN (SELECT idsolicitud,max(fechaEstado) mFecha FROM solicitud_has_estado GROUP BY idsolicitud) Sbc
  4.       ON  se.solicitud_idsolicitud=Sbc.idsolicitud AND se.fechaEstado=Sbc.mFecha
  5. INNER JOIN estado e ON se.estado_idestado= e.idestado
  6. ...

algo así, pero insito NO tengo toda la info necesaria para acertar en la respuesta....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 21/02/2013 a las 06:36

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:31.