Grazie mille Alex, il tuo consiglio mi ha messo sulla strada giusta.
Sono riuscito ad ottenere quello che cercavo in questo modo:
SELECT [Cognome] & ", " & [Nome] AS NomeComp, Last(Contatti.Data) AS UltimoDiData,Last(Contatti.Oggetto) AS UltimoDiOggetto
FROM Società RIGHT JOIN (Persone INNER JOIN Contatti ON Persone.ID = Contatti.PersonaContattata) ON Società.ID = Persone.Società
GROUP BY [Cognome] & ", " & [Nome], Società.RagioneSociale, Persone.StatoContatto, Contatti.TrattativaConclusa
ORDER BY Last(Contatti.Data);
è un pochino diverso da quello che avevo chiesto perché ho recuperato informazioni anche da una terza tabella (Società). Rispetto al tuo, però, per trovare la data più recente ho scritto direttamente "Last" (oppure "Max") in Select, invece di fare quella "query nella query" che hai proposto nel tuo esempio.
Sapresti dirmi vantaggi e svantaggi, e se comunque il mio approccio può essere valido e generale?
Infine, Vorrei un tuo consiglio, se possibile, sull'utilizzo di Last/Max: come vedi io devo recuperare due campi relativi allo stesso record dalla tabella Contatti: Contatti.Data e Contatti.Oggetto (in particolare voglio i più recenti per ogni persona). Se uso max su entrambi i due campi non sono collegati tra loro, mentre se uso last nessuno mi garantisce che siano i più recenti (nel caso in cui sia stato inserito un contatto passato per ultimo). Consigli su come usare il max ed essere sicuro che i due campi si riferiscano allo stesso record?
Grazie di nuovo