Your code seems really unefficient and unconsistent. Here's a better option to do it.
SELECT client,
SUM( CASE WHEN year = 2003 THEN fees_billed ELSE 0 END) as fees_billed_2003,
SUM( CASE WHEN year = 2004 THEN fees_billed ELSE 0 END) as fees_billed_2004,
SUM( CASE WHEN year = 2005 THEN fees_billed ELSE 0 END) as fees_billed_2005,
--and so on
SUM( CASE WHEN year = 2013 THEN fees_billed ELSE 0 END) as fees_billed_2013
FROM client c
JOIN whse w on c.client= w.client
--and begdt>=‘1/1/2004’ and enddt<=‘12/31/2013’
GROUP BY client
ORDER BY client
It's still static code but it will go through your table just once. From here, you can make the T-SQL dynamic, but you might still need to change the report front-end.
To convert the code into dynamic code, read the following articles: