Zee,
The reason I asked the questions is because the solution you're so happy with (thank you for posting it) does 4 table scans... if the right indexes are present, it will still do at least 2 table scans. It'll work a lot better if you can get some code that groups things by week instead of 7 days. Tom Carr's code will beat the tar out of the code you posted.
--Jeff Moden
Change is inevitable... Change for the better is not.