select firstname+' '+lastname name , amt1997 , amt1998, amt1998-amt1997 amt_diff ,
case when amt1997=0 then 0 else (amt1998-amt1997)/amt1997*100 end amt_prc
from (
select employeeid ,
sum(case when datepart(year,orderdate)=1997 then unitprice*quantity else 0 end) amt1997 ,
sum(case when datepart(year,orderdate)=1998 then unitprice*quantity else 0 end) amt1998
from orders h
left join [order details] d on h.orderid=d.orderid
where convert(varchar(4),orderdate,112) in ('1997','1998')
group by employeeid
) a left join employees e on a.employeeid=e.employeeid
order by amt_prc desc
