select * , amt1998-amt1997 amt_diff, case when amt1997=0 then 0 else (amt1998-amt1997)*100/amt1997 end amt_prc from( select emp_id , sum(case when amt_year='1997' then amt else 0.0 end) amt1997 , sum(case when amt_year='1998' then amt else 0.0 end) amt1998 from amount where amt_year in ('1997','1998') group by emp_id ) a order by amt_prc desc