The first SELECT statement gives you a value of ‘NULL’.
The second statement gives you a value of ‘0’ because the true value returned is
‘NULL’
SELECT SUM(number_of_whatever) AS CalculatedValue FROM some_table WHERE some_column = 'some_value' AND (some_date_column >= '2011-12-01' + cast('00:00' as smalldatetime)) AND (some_date_column <= '2011-12-31' + cast('00:00' as smalldatetime))
SELECT ISNULL(SUM(number_of_whatever)),0) AS CalculatedValue FROM some_table WHERE some_column = 'some_value' AND (some_date_column >= '2011-12-01' + cast('00:00' as smalldatetime)) AND (some_date_column <= '2011-12-31' + cast('00:00' as smalldatetime))