Dosyć typowy problem, ale sporo się z nim męczyłem. Może się komuś przyda.
3 tabele
TERMINALE - id, nrser
POLOZENIA - id, nazwa
HISTORIA- id, id_terminale, id_polozenia, data
SELECT id_terminale, id_punkty, `data` , nrser, nazwa FROM historia s1, terminale, punkty WHERE terminale.id = s1.id_terminale AND punkty.id = s1.id_punkty AND `data` = ( SELECT MAX( s2.DATA ) FROM historia s2 WHERE s1.id_terminale = s2.id_terminale ) ORDER BY ".$sort." ".$r);
zmienna $sort wg. jakiej kolumny sortujemy
zmienna $r może być ASC lub DESC
Otrzymamy
Datę ostatniej zmiany położenia, oraz nazwę aktualnego położenia
+-----------------+------------+-------+------+---------+
| id_terminale | id_punkty | data | nrser | nazwa |
+-----------------+------------+-------+------+---------+