Предполагая, что @ value3 является строкой и является другим параметром хранимой процедуры, этот столбец даты фактически является DATE, и игнорирует тот факт, что я понятия не имею, как можно получить схему, в которой поля группировки могут быть случайными, как это (которую вы проигнорировали в других недавних вопросах здесь):
DECLARE @sql NVARCHAR(MAX) = N'SELECT '
+ @column1 + ', ' + @column2 + ', SUM(amountcolumn)
FROM tablename
WHERE column3 = ''' + @value3 + '''
AND datecolumn BETWEEN ''' + CONVERT(CHAR(10), @startdate, 120) + '''
AND ''' + CONVERT(CHAR(8), @enddate, 120) + '''
GROUP BY ' + @column1 + ', ' + @column2 + ';';
EXEC sp_executesql @sql;
-- strongly recommend against sp_sqlexec
-- it is undocumented and unsupported
Это также предполагает, что вы не заботитесь о заказе (вы, вероятно, делаете это и захотите добавить ORDER BY, а также GROUP BY).