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

buscar el ultimo registro de cada usuario

Estas en el tema de buscar el ultimo registro de cada usuario en el foro de Mysql en Foros del Web. Hola, nuevamente solicito ayuda con una consulta que creo es compleja. EL caso es tengo 2 tablas de la siguiente forma tabla siembras id_siembra,fecha_siembra,id_hacienda,id_suerte, estado ...
  #1 (permalink)  
Antiguo 23/08/2011, 04:55
 
Fecha de Ingreso: julio-2011
Mensajes: 7
Antigüedad: 12 años, 8 meses
Puntos: 0
buscar el ultimo registro de cada usuario

Hola, nuevamente solicito ayuda con una consulta que creo es compleja.
EL caso es tengo 2 tablas de la siguiente forma
tabla siembras
id_siembra,fecha_siembra,id_hacienda,id_suerte, estado
tabla cortes
id_corte,fecha_corte,id_hacienda,id_suerte

debo consultar el valor mas alto para el campo fecha_corte por cada hacienda y suerte, pero sino hay registro debo buscar el campo fecha_siembra en la tabla siembras.

intentare aclarar: la tabla siembras guarda los registros iniciales y la tabla cortes se utiliza para guardar registros posteriores ejemplo se realiza una siembra por primera vez en este caso no existe ningun valor para esta hacienda y suerte en la tabla cortes
  #2 (permalink)  
Antiguo 23/08/2011, 08:04
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 2 meses
Puntos: 447
Respuesta: buscar el ultimo registro de cada usuario

Hola robiwimarbu1:

¿Podrías poner algunos datos de ejemplo en tus tablas? para ver cómo debe ser el comportamiento de la consulta

Saludos
Leo.
  #3 (permalink)  
Antiguo 23/08/2011, 10:56
 
Fecha de Ingreso: julio-2011
Mensajes: 7
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: buscar el ultimo registro de cada usuario

tabla siembras
fecha_siembra id_hacienda id_suerte id_siembra estado
-----------------------------------------------------------------------
29/03/2010 11 9 16 SIEMBRA
30/01/2010 11 5 15 SOKA
16/08/2010 11 4 14 SOKA
16/08/2011 11 2 12 LIBRE
08/08/2011 11 3 13 SOKA
16/08/2011 11 1 11 SOKA

tabla cortes
id_hacienda id_suerte fecha_siembra num_corte edad_corte fecha_corte id_corte
----------------------------------------------------------------------------------------------
11 3 08/08/2010 1 12 16/08/2010 1
11 5 10 10 30/01/2010 3


necesito hallar la ultima fecha de corte de la combinacion id_hacienda, id_suerte en la tabla cortes agregado al hecho que si existe en la tabla siembra un registro con estado siembra debo hallar es el registro de la ultima fecha_siembra.

Espero haber aclarado y si tu me puedes dar una luz. Gracias
  #4 (permalink)  
Antiguo 23/08/2011, 13:32
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 3 meses
Puntos: 1
Respuesta: buscar el ultimo registro de cada usuario

Hola robiwimarbu1,

no sé si te entendí bien pero aquí te va una propuesta (hace algún tiempo que no escribo consultas para mysql pero veremos que sale).
Creo que pides: sacar la última fecha (la máxima) de los cortes de una hacienda salvo que esté en estado de 'SIEMBRA' en cuyo caso necesitas la fecha de la siembra. En ese caso, creo que la consulta podría ser algo así (falta comprobar la sintaxis que seguro falla)
Código:
select CASE s.estado = 'SIEMBRA' THEN MAX(s.fecha_siembra) ELSE MAX(c.fecha_corte) END, s.id_siembra
from siembras s
left join cortes c on c.id_hacienda = s.id_hacienda and c.id_suerte = s.id_suerte
group by s.id_siembra
Espero no haber mentido mucho
__________________
http://www.nosoynadie.net/
  #5 (permalink)  
Antiguo 23/08/2011, 14:06
 
Fecha de Ingreso: julio-2011
Mensajes: 7
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: buscar el ultimo registro de cada usuario

Cita:
Iniciado por nosoynadie Ver Mensaje
Hola robiwimarbu1,

no sé si te entendí bien pero aquí te va una propuesta (hace algún tiempo que no escribo consultas para mysql pero veremos que sale).
Creo que pides: sacar la última fecha (la máxima) de los cortes de una hacienda salvo que esté en estado de 'SIEMBRA' en cuyo caso necesitas la fecha de la siembra. En ese caso, creo que la consulta podría ser algo así (falta comprobar la sintaxis que seguro falla)
Código:
select CASE s.estado = 'SIEMBRA' THEN MAX(s.fecha_siembra) ELSE MAX(c.fecha_corte) END, s.id_siembra
from siembras s
left join cortes c on c.id_hacienda = s.id_hacienda and c.id_suerte = s.id_suerte
group by s.id_siembra
Espero no haber mentido mucho
Ok, gracias voy a probar y te cuento de todas formas te agradezco tomarte el tiempo para la consulta

Etiquetas: select
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 16:13.