Предполагая, что вы хотите получать одну сумму в год, вот один из вариантов, используя union all
:
SELECT year, SUM(scost) scostsum,
FROM (
SELECT syear as year, scost as cost from table1
UNION ALL
SELECT hyear as year, hcost as cost from table2
) t
GROUP by year;
На основании вашего комментария, если вам нужно несколько сумм, вы должны создатьтаблица лет, а затем используйте outer joins
, чтобы получить свой скост и шкост.Вот пример:
select year, coalesce(s.cost,0) as scost, coalesce(h.cost,0) as hcost
from (select syear as year from table1 union select hyear from table2) years
left join (
select syear, sum(scost) cost
from table1
group by syear) s on years.year = s.syear
left join (
select hyear, sum(hcost) cost
from table2
group by hyear) h on years.year = h.hyear