 <p>Grouping by Linn (town) and Nimi (name) tells the db engine to give you one row for each combination of town and name, and show you the maximum Vanus (age) for each of those combinations. And logically, that's not what you want. You want the name of each person whose age is the same as the maximum age in that town.</p> <p>First verify you can retrieve the max age for each LinnID. </p> <pre><code>SELECT LinnID, Max(Vanus) As MaxOfVanus FROM Myyjad GROUP BY LinnID; </code></pre> <p>If that works, you can save it as "qryTownAge", then use it in another query where you join it (on LinnID) with Linnad. That will allow you to retrieve the matching Linn.</p> <pre><code>SELECT l.LinnID, l.Linn, q.MaxOfVanus FROM Linnad AS l INNER JOIN qryTownAge AS q ON l.LinnID = q.LinnID ORDER BY l.Linn; </code></pre> <p>If that works, save it as qryTownAge2. Then try this query.</p> <pre><code>SELECT q.Linn, q.MaxOfVanus, m.Nimi FROM qryTownAge2 AS q INNER JOIN Myyjad AS m ON ( m.LinnID = q.LinnID AND m.Vanus = q.MaxOfVanus ) ORDER BY q.Linn; </code></pre> <p>If that all works, you could create a single query which does it all. However, doing it step by step should help us pinpoint errors.</p>