Recuperare il valore di un campo dopo aver trovato il MAX su un altro campo

di Anonimizzato32246 il
1 risposte
Buongiorno. Ho un problema che mi pare banale, ma sto impazzendo.
Ho una tabella che serve per tracciare la storia delle persone. Ha solo 4 campi: chiave_primaria, codicefiscale, dataevento, evento.
Vorrei poter estrarre, persona per persona, l'ultima data e il corrispondente evento (cioè l'evento corrispondente all'ultima data di quella persona).

TABELLA "storia"
id, codicefiscale, dataevento, evento

Io ho provato la seguente query
SELECT codicefiscale, MAX(dataevento) AS ultimadata, evento
FROM storia
GROUP BY codicefiscale
ma ottengo il valore corretto per la data (la più recente), ma non il corrispondente evento.

Come posso fare? Se fosse Excel userei la funzione CERCA.VERT, ma in MySQL?

Grazie. Davvero.

Matteo

1 Risposte

  • Ciao.
    Non conosco MySQL, ma se supporta gli alias e le subquery, allora dovresti fare una cosa del genere.
    
    SELECT *
    FROM storia s
    where dataevento = (select max(t.dataevento) from storia t where t.codicefiscale = s.codicefiscale)
    
Devi accedere o registrarti per scrivere nel forum
1 risposte