in alternativa a quello che ti ha suggerito stabi, potresti usare questo:
codice:
SELECT DISTINCT t1.id_oggetto,t1.contratto,t2.data, max(t2.data) as mas 
FROM oggetti AS t1, oggetti_riga AS t2 
WHERE t2.stato='$stato' AND t1.id_oggetto=t2.oggetto 
GROUP BY t1.contratto
HAVING MAX(t2.data)=mas;
ciao