Ваша модель данных позволяет идентификатору объекта появляться в течение нескольких лет. Таким образом, соответствующие записи таблицы2 будут умножаться, то есть добавляться к каждому из этих лет. Если вы не хотите этого, вам нужна отдельная таблица с одной записью на объект.
Как вы бы агрегировали первую таблицу по году и идентификатору объекта, а вторую - только по идентификатору объекта. Затем присоединитесь и объединитесь, чтобы получить годы.
select
t1.year,
sum(t1.totalg) as total_g_amount,
coalesce(sum(t2.totali), 0) as total_i_amount
from
(
select Year, ObjectId, sum(G_Amount) as totalg
from table1
group by Year, ObjectId
) t1
left join
(
select ObjectId, sum(i_Amount) as totali
from table2
group by ObjectId
) t2 on t2.ObjectId = t1.ObjectId
group by t1.year
order by t1.year;