PDA

View Full Version : [SQL] problema con SELECT MAX


deviato
27-03-2012, 12:48
Salve a tutti,
Ho cercato un pò in giro ma non ho trovato soluzione al mio problema.
ho un database access 2003 che gestisce le presenze ai corsi.

I campi sono tessera di tipo testo, data di tipo data e corso di tipo testo.
Ho la necessità di selezionare la data piu recente di partecipazione in base ad un numero di tessera, ho fatto in questo modo:

SELECT MAX(data)
FROM presenze
WHERE tessera='xxx'

In effetti mi restituisce una sola data però non è la piu recente, in realtà è solo quella con il numero del giorno piu alto. Qualcuno può aiutarmi? :muro:
Grazie a tutti

gugoXX
29-03-2012, 09:15
probabilmente quella data non e' una data, ma e' una stringa.
E ancora, probabilmente e' stata scritta in formato dd/mm/yyyy alla europea, ovvero ad esempio oggi 29/03/2012

ovviamente ordinando alfabeticamente li' sopra restituira' la data con il giorno piu' alto.

Se e' cosi', devi trovare un modo per convertire una stringa con quel formato opportuno in una data sotto Access (non mi ci metto neppure a cercare)

e poi potrai eseguire

SELECT MAX( funzione (data) )
FROM presenze
WHERE tessera='xxx'

VegetaSSJ5
29-03-2012, 20:17
sinceramente non riesco a capire il senso di un select max applicato su un campo data (dammi la massima data... che senso ha?). direi che avrebbe molto più senso fare un select top 1 data from... where... order by data desc.

gugoXX
29-03-2012, 21:39
E perche' non riesci a capire il senso?
Danno lo stesso risultato, hanno la stessa complessita', la soluzione MAX e' piui' concisa ed inoltre e' standard mentre la TOP 1 invece no.