with t as
(select b.time,a.typename,sum(b.value) value from b left join a
on b.typeid=a.typeid
group by b.time,a.typename)
select * from t pivot (sum(value) for typename in ('工业','农业','商业'));
select m.time, sum(decode(m.typename,'工业',m.value,null)) '工业',
sum(decode(m.typename,'农业',m.value,null)) '农业',
sum(decode(m.typename,'商业',m.value,null)) '商业'
from
(SELECT b.ID, a.typename, b.TIME, b.VALUE
FROM a, b
WHERE a.typeid = b.typeid) m
group by m.time
order by m.time