That sounds like a task for Excel (or Access). Have you tried an external query from Excel (using either the query wizard or MS Query, which is a part of Excel). If the number of rows returned exceeds Excel's limits, try creating a Pivot Table from an external source (your SQL Server database). In either case, the data can be refreshed whenever the user wants, with no intermediate batch steps.) (If you really need cvs, Excel can save as that format too.)
From Access, you can simply link to the SQL Server view and pretend the data is local.