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

[SOLUCIONADO] Problema con ultimo registro entre 2 o 3 tablas relacionadas

Estas en el tema de Problema con ultimo registro entre 2 o 3 tablas relacionadas en el foro de Mysql en Foros del Web. saludos a toda la comunidad comunidad: tengo una consulta de 3 tablas relacionadas y tengo el siguiente problema: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT ...
  #1 (permalink)  
Antiguo 24/04/2014, 16:08
 
Fecha de Ingreso: marzo-2007
Mensajes: 17
Antigüedad: 17 años, 1 mes
Puntos: 0
Mensaje Problema con ultimo registro entre 2 o 3 tablas relacionadas

saludos a toda la comunidad comunidad:

tengo una consulta de 3 tablas relacionadas y tengo el siguiente problema:

Código MySQL:
Ver original
  1. id_personal,
  2. nombres,
  3. apellido_paterno,
  4. apellido_materno,
  5. tipo_administrativo,
  6. numero_memo,
  7. cargo,
  8. fecha_inicio,
  9. fecha_fin
  10. personal
  11. INNER JOIN memos_de_asignacion ON memos_de_asignacion.Personal_id_personal = personal.id_personal
  12. INNER JOIN cargospuntajes ON memos_de_asignacion.cargospuntajes_id_cargo_puntaje = cargospuntajes.id_cargo_puntaje
  13. WHERE cargo LIKE 'algunCargo%' AND (tipo_administrativo = 'De Planta' OR tipo_administrativo = 'eventual')

ahora si le pongo no me repite a los usuarios en la consulta

Código MySQL:
Ver original
  1. id_personal

ahora nose como hacer que: NO ME REPITA Y A LA VEZ ME SAQUE EL ULTIMO REGISTRO DE CADA USUARIO YA Q CADA USUARIO TIENE UN MONTON CARGOS Y SOLO QUIERO EL ULTIMO CARGO PERO Q NO SE REPITA LOS USUARIOS EN LA CONSULTA
  #2 (permalink)  
Antiguo 24/04/2014, 23:02
 
Fecha de Ingreso: abril-2014
Mensajes: 72
Antigüedad: 10 años
Puntos: 5
Respuesta: Problema con ultimo registro entre 2 o 3 tablas relacionadas

Usa el GROUP BY y agregale:
Código MySQL:
Ver original
  1. ORDER BY fecha_inicio ASC

También lo podrías hacer con fecha_fin, no sé cual te conviene más.

Última edición por zyxer; 24/04/2014 a las 23:07
  #3 (permalink)  
Antiguo 25/04/2014, 06:22
 
Fecha de Ingreso: marzo-2007
Mensajes: 17
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Problema con ultimo registro entre 2 o 3 tablas relacionadas

gracias por responder pero ya probe y no me extrae al usuario con su ultimo cargo
  #4 (permalink)  
Antiguo 25/04/2014, 07:41
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema con ultimo registro entre 2 o 3 tablas relacionadas

Sin ver de que tabla es cada campo ni que tipo tinen los campos es dificil de acertar.... pero

Si no usas la tabla donde esten los cargos sino una seleccion de los cargos, el ultimo de cada usuario


Código MySQL:
Ver original
  1. SELECT id_personal, MAX(idCargo) FROM Cargos GROUP BY id_personal;

Esto si idCargo es uto numerico nos daria el ultimo cargo de cada usuarió... siempre que no se pueda forzar la fecha claro....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 26/04/2014 a las 03:55
  #5 (permalink)  
Antiguo 25/04/2014, 09:34
 
Fecha de Ingreso: marzo-2007
Mensajes: 17
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Problema con ultimo registro entre 2 o 3 tablas relacionadas

gracias: quimfv
por aconsejarme utilizar la funcion MAX()

publico el codigo para compartir por si alguien tiene el mismo problema de optener de tablas relacionadas al usuario con sus ultimo cargo

Código MySQL:
Ver original
  1. id_personal,
  2. nombres,
  3. apellido_paterno,
  4. apellido_materno,
  5. tipo_administrativo,
  6. numero_memo,
  7. Max(cargospuntajes.cargo) AS cargo,
  8. Max(memos_de_asignacion.fecha_inicio) AS fecha_inicio,
  9. Max(memos_de_asignacion.fecha_fin) AS fecha_fin,
  10. Max(memos_de_asignacion.id_memos_de_asignacion) as id_memos_de_asignacion
  11. personal
  12. INNER JOIN memos_de_asignacion ON memos_de_asignacion.Personal_id_personal = personal.id_personal
  13. INNER JOIN cargospuntajes ON memos_de_asignacion.cargospuntajes_id_cargo_puntaje = cargospuntajes.id_cargo_puntaje
  14. WHERE cargo LIKE 'AlgunCargo%' AND (tipo_administrativo = 'De Planta' OR tipo_administrativo = 'eventual')
  15. personal.id_personal

Etiquetas: join, registro, relacionadas, select, tabla, tablas, ultimo, usuarios
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 23:24.