Hola a tod@s,
Llevo varios días dandole vuelta a una consulta sobre una tabla... aparentemente sencilla, y seguro lo sea, pero en la cual estoy un poco enfrascao.
a ver si me podeis echar un cable...
La tabla tiene la siguiente estructura:
id_user (int) ----- id_tarifa (int) ------ fecha_aplicacion (date)
1 --------------- 1 --------------- 01-01-2010
1 --------------- 2 --------------- 01-03-2010
1 --------------- 3 --------------- 01-08-2010
2 --------------- 1 --------------- 01-01-2010
2 --------------- 3 --------------- 01-03-2010
3 --------------- 1 --------------- 01-01-2010
(siendo PK: id_user,id_tarifa, fecha_aplicacion)
y necesito hacer una consulta que me devuelva esto:
id_user -------- id_tarifa -------- fecha_aplicacion
1 --------------- 3 --------------- 01-08-2010
2 --------------- 3 --------------- 01-03-2010
3 --------------- 1 --------------- 01-01-2010
Necesito saber que tarifa se le está aplicando actualmente a cada usuario... es decir... para cada usuario que busque la fecha máxima... y que me devuelva el id_tarifa correspondiete a ese registro.
Entiendo que los criterios, de algún modo, serán seleccionar la fecha máxima para cada usuario, y de algún modo que lo agrupe (para el usuario x la fecha maxima será y).
si hago la consulta tipo:
"SELECT id_user, id_tarifa, max(fecha) FROM tabla GROUP BY id_user"
me devuelve un solo registro por cada usuario... con la fecha máxima... y con la primera tarifa que encuentra para ese usuario (o la primera que encuetra se la aplica a todos)... lo cual no se corresponde con la tarifa actual... comprendo porque no funciona asi, ya que en ningún momento le digo que hacer con el id_tarifa... y me devuelve lo primero que encuetra... ok.. asi incorrecto.
He probado con INNER JOIN de la misma tabla, subconsutlas... y no se que más.. ya he estado mirando por aki (y por otros foros) y no doy encontrado lo que busco......
En fin.. a ver si alguien sabe como hacer la consulta o me podeis indicar pistas de por donde tirar.
Muchas gracias a tod@s.