michael.rogers (5/15/2008)
WHERE Month(o.READING_DATE) = @StatusDateMonth and Year(o.READING_DATE) = @StatusDateYear
Functions on a column (READING_DATE) will prevent an index from being used and as your data grows your query will become slower and slower.
Rather do something like this
declare @stdt datetime, @endt datetime
select @stdt=convert(char(8), @StatusDateYear*10000+@StatusDateMonth*100+1)
,@endt=dateadd(mm, datediff(mm,'20000101',@stdt)+1, '20000101')
Now you can select
where READING_DATE>=@stdt
and READING_DATE<@endt