Is there a way to write SQL Server Stored Procedure which to be strongly typed ( i.e. returning known result set of columns ) and having its group statement to be dynamic. <
You can group on a constant which might be useful
SELECT
SUM(Column0),
CASE @MyVar WHEN 'Column1' THEN Column1 ELSE '' END AS MyGrouping
FROM
Table1
GROUP BY
CASE @MyVar WHEN 'Column1' THEN Column1 ELSE '' END
Edit: For datatype mismatch and multiple values and this allows you to group on both columns...
SELECT
SUM(Column0),
CASE @MyVar WHEN 'Column1' THEN Column1 ELSE NULL END AS Column1,
CASE @MyVar WHEN 'Column2' THEN Column2 ELSE NULL END AS Column2
FROM
Table1
GROUP BY
CASE @MyVar WHEN 'Column1' THEN Column1 ELSE NULL END,
CASE @MyVar WHEN 'Column2' THEN Column2 ELSE NULL END