The reserve column is a varchar, to perform sums on it I want to cast it to a deciaml. But the SQL below gives me an error
select cast(Reserve as decimal) fr
isnumeric is not 100% reliable in SQL - see this question Why does ISNUMERIC('.') return 1?
isnumeric
I would guess that you have value in the reserve column that passes the isnumeric test but will not cast to decimal.