It might help to post the structure of BIRDS_vw_SpeciesByMonth and if possible a small subset of data from that view (ie select top 10 * from BIRDS_vw_SpeciesByMonth).
If I'm interpreting your intention correctly you're using IF EXISTS and ELSE to try to put a 0 in place instead of a NULL? Can you use ISNULL to resolve that condition instead?