allora prova con qualcosa simile
con group BY elimini sicuramente i duplicatiCodice PHP:
GROUP BY campo_codice
ORDER BY cognome, nome, campo_data ASC
Non sono sicuro per quanto riguarda l'ordine in cui ti restituisce i risultati. Se non ti da l'ordine che desideri dovresti provare a fare una query ricorsiva oppure non so se qualche altro forumista ha suggerimenti su come ottenere il risultato facendo un'unica query.