Нужно сделать просто: взять ID из TAB1, сделать JOIN с TAB2, и вывести по порядку ID, LOCAT и DATE, но отсортировав по DATE - интересны только последние даты (свежие)
Нужно отобрать данные с T2, где для каждого ID выбрать запись с максимальной датой.
Если смысл наших фраз совпадает, то поступить нужно иначе. С tab2 данные нужно выбирать по двум полям (id, max(date), а у вас ключ лишь один - id. Значит сперва нужно сформировать набор данных с ключом из двух полей (id, date), а потом приджоинить к нему саму таблицу tab1, связав их сразу по двум полям. Получается выборка в два захода.
Как построить такой запрос очень зависит от масштабов данных. По вашим примерам не ясно, на что именно делать упор, потому приведу чисто школьный пример.
select
t1.id, t1.raw, t2.date, t2.locat
from ( -- формируем промежуточный набор данных с id+date подходящих записей
select a2.id, max(a2.date) date
from tab2 a2
join tab1 a1 on a2.id = a1.id -- этот джоин ограничивает множество a2, чтобы не группировать лишние записи
group by a1.id, a1.date
) n
join tab1 t1 on t1.id = n.id
join tab2 t2 on t2.id = n.id and t2.date = n.date -- теперь в джоине участвует два поля, чтобы точно указать на запись, которая нам нужна
Можете выполнить внутренний запрос отдельно и увидеть, что он вам выберет.
Проявите уважение к отвечающим - перечитайте свой вопрос перед публикацией, оцените "доходчивость" и полноту описания + используйте форматирование :)