In Postgres, you can use distinct onto solve this top-1-per-group problem:
select distinct on(a.inst_code)
a.inst_code,
b.inst_name,
a.version,
a.status,
a.date
from tablea a
inner join table b on b.inst_code = a.inst_code
order by a.inst_code, a.version desc, a.date desc