>Did you try having an index on the group by expression?
Could you give me an example of what you mean by that?
>Also, do you really need to convert to char? why not grouping by YEAR(Invoice.ModDate) directly? (and having an index on it too might help)
Yes, I might skip the CHAR here and parse it after for the display purpose.