MySQL - agrupamiento de registros y ultimo movimiento

 
Vista:

agrupamiento de registros y ultimo movimiento

Publicado por fernando (2 intervenciones) el 08/03/2010 16:27:11
Estimados!
me estoy rompiendo la cabeza y no puedo resolver la siguient situación.

basicamente tengo una tabla de medicos y una de novdedes para medicos, donde se registran los movimientos de estos medicos de un centro de salud a otro... yo tengo el siguiente scrip que me devuelve un set de datos de tdas las novedades.

SELECT p.name AS ayn, co.name AS cohorte, h.name AS centrosalud, ca.name AS cargo, MAX(n.fecha_desde) AS fechadesde, n.fecha_hasta AS fechahasta, n.hslunes AS lunes, n.hsmartes AS martes, n.hsMirecoles AS miercoles, n.hsjueves AS jueves, n.hsviernes AS viernes, n.hssabados AS sabados, n.hsdomingos AS domingos, n.rmsp, n.coordinador, n.facilitador, l.name AS localidad, r.name AS region
FROM pers AS p
INNER JOIN novelties AS n ON p.id = n.per_id
INNER JOIN cohorts AS co ON n.cohort_id = co.id
INNER JOIN chargues AS ca ON n.chargue_id = ca.id
INNER JOIN healtcenters AS h ON n.healtcenter_id = h.id
INNER JOIN locations AS l ON h.location_id = l.id
INNER JOIN regions AS r ON l.region_id = r.id
INNER JOIN profesions as pf on p.profesion_id= pf.id
WHERE 1 =1
group by n.per_id

el problema es que yo necesito traer la ultima novedad, es decir el max(n.id) por cada n.per_id

no se si fui claro, en realidad necesito que el sistema me devuelva el lugar actual donde el medico esta trabajando...

por favor espero que me ayuden, a mi correo que dejo arriba 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

RE:agrupamiento de registros y ultimo movimiento

Publicado por Tiburoncin (1 intervención) el 10/03/2010 17:40:11
SELECT p.name AS ayn, co.name AS cohorte, h.name AS centrosalud, ca.name AS cargo, MAX(n.fecha_desde) AS fechadesde, n.fecha_hasta AS fechahasta, n.hslunes AS lunes, n.hsmartes AS martes, n.hsMirecoles AS miercoles, n.hsjueves AS jueves, n.hsviernes AS viernes, n.hssabados AS sabados, n.hsdomingos AS domingos, n.rmsp, n.coordinador, n.facilitador, l.name AS localidad, r.name AS region , ULT_N.ID AS ULTIMA_NOVEDAD
FROM pers AS p
INNER JOIN novelties AS n ON p.id = n.per_id
INNER JOIN cohorts AS co ON n.cohort_id = co.id
INNER JOIN chargues AS ca ON n.chargue_id = ca.id
INNER JOIN healtcenters AS h ON n.healtcenter_id = h.id
INNER JOIN locations AS l ON h.location_id = l.id
INNER JOIN regions AS r ON l.region_id = r.id
INNER JOIN profesions as pf on p.profesion_id= pf.id
INNER JOIN
(
SELECT N1.PER_ID, MAX(N1.ID) AS ID
FROM NOVELTIES N1
GROUP BY N1.PER_ID
) ULTN ON ULTN.PER_ID = P.ID
WHERE 1 =1
group by n.per_id
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