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

[SOLUCIONADO] Como Agrupar un Registro unico y obtener el mayor valor posible

Estas en el tema de Como Agrupar un Registro unico y obtener el mayor valor posible en el foro de Mysql en Foros del Web. Saludos a toda la comunidad... estare muy agradecido por su colaboracion con el siguiente problemita. Tengo 3 tablas relacionadas aca ba el codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 03/10/2014, 16:15
 
Fecha de Ingreso: marzo-2007
Mensajes: 17
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Como Agrupar un Registro unico y obtener el mayor valor posible

Saludos a toda la comunidad...
estare muy agradecido por su colaboracion con el siguiente problemita.

Tengo 3 tablas relacionadas aca ba el codigo
Código MySQL:
Ver original
  1. personal.id_personal,
  2. personal.nombres,
  3. personal.apellido_paterno,
  4. personal.apellido_materno,
  5. personal.tipo_administrativo,
  6. memos_de_asignacion.id_memos_de_asignacion,
  7. memos_de_asignacion.fecha_fin,
  8. cargospuntajes.cargo
  9. personal
  10. INNER JOIN memos_de_asignacion ON memos_de_asignacion.Personal_id_personal = personal.id_personal
  11. INNER JOIN cargospuntajes ON memos_de_asignacion.cargospuntajes_id_cargo_puntaje = cargospuntajes.id_cargo_puntaje
  12. WHERE personal.id_personal = 2 or personal.id_personal = 3

y tengo este resultado:


ahora necesito obtener solo un valor por cada usuario y pues utilice
Código MySQL:
Ver original
  1. GROUP BY personal.id_personal

ahora esta ahi el problemita q tengo como obtengo el ultimo valor de cada usuario en el Grafico veran 2 columnas (id_memos_de_asignacion) y (fecha_fin) los que quiero optener es el valor (id_memos_de_asignacion = 218 y fecha_fin = 2014-01-29)
y del proximo registro lo mismo (id_memos_de_asignacion = 221 y fecha_fin = 2014-01-29) .

esto oviamente tendria que funcionar para la cantidad de usuarios q tengo registrado y no solo como muestro aca solo 2 usuarios....

Estare muy agradecido por su colaboracion con este script.... Gracias anticipadamente
  #2 (permalink)  
Antiguo 03/10/2014, 16:33
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Como Agrupar un Registro unico y obtener el mayor valor posible

Es un caso que siempre nos consulta. No puedes hacer lo que quieres sin realizarlo dentro de una subconsulta.
Código MySQL:
Ver original
  1. SELECT a, b, d
  2.     (SELECT a, b, c
  3.     FROM tabla ...
  4.     WHERE ...
  5.     ORDER BY b DESC) t1
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 04/10/2014, 16:33
 
Fecha de Ingreso: marzo-2007
Mensajes: 17
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Como Agrupar un Registro unico y obtener el mayor valor posible

muchas gracias por el tip voy a probarlo y comento como me fue
  #4 (permalink)  
Antiguo 07/10/2014, 07:30
 
Fecha de Ingreso: marzo-2007
Mensajes: 17
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Como Agrupar un Registro unico y obtener el mayor valor posible

No logro solucionar el problema utilizando subconsultas.... anguna ayudita mas que puedan darme? porfavor...
  #5 (permalink)  
Antiguo 07/10/2014, 07:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Como Agrupar un Registro unico y obtener el mayor valor posible

Postea la query es estás probando ahora.
Trabajamos con cosas concretas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 07/10/2014, 16:08
 
Fecha de Ingreso: marzo-2007
Mensajes: 17
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Como Agrupar un Registro unico y obtener el mayor valor posible

Despues de varios dias investigando como hacer subselecciones aca esta el query funcionando MUCHAS GRACIAS la ayuda gnzsoloyo

Comparto la query por ah alguien le pueda servir:

Código MySQL:
Ver original
  1. personal.id_personal,
  2. personal.nombres,
  3. personal.apellido_paterno,
  4. personal.apellido_materno,
  5. personal.tipo_administrativo,
  6. memos_de_asignacion.fecha_fin,
  7. cargospuntajes.cargo
  8. memos_de_asignacion.id_memos_de_asignacion,
  9. memos_de_asignacion.fecha_fin,
  10. memos_de_asignacion.Personal_id_personal,
  11. memos_de_asignacion.cargospuntajes_id_cargo_puntaje
  12. FROM memos_de_asignacion
  13. ORDER BY memos_de_asignacion.id_memos_de_asignacion DESC) AS memos_de_asignacion ,
  14. cargospuntajes ,
  15. personal
  16. WHERE cargospuntajes.id_cargo_puntaje = memos_de_asignacion.cargospuntajes_id_cargo_puntaje
  17. AND memos_de_asignacion.Personal_id_personal = personal.id_personal
  18. GROUP BY memos_de_asignacion.Personal_id_personal

bueno quizas se pueda optimizar mas el codigo bueno eso lo vere tambien pero por el momento me funciona perfectamente a lo que necesitaba en el primer post y la muestra de la imagen que requeria unir 3 tablas y sacar el ultimo valor de la tercera tabla

Última edición por djdonovans; 10/10/2014 a las 15:51

Etiquetas: agrupar, join, mayor, posible, registro, select, tabla, valor
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 08:09.