1
我需要完成在存储过程如下:选择动态列GROUP BY动态列
- 通参数列名。
- 选择参数化列名称并按选定列提供总分组。
代码:
CREATE PROCEDURE sproc (
@column1 NVARCHAR(MAX),
@column2 NVARCHAR(MAX),
@startdate DATE,
@enddate DATE) AS
BEGIN
DECLARE @sqlquery NVARCHAR(MAX) = 'SELECT @column1, @column2, SUM(amountcolumn)
FROM tablename
WHERE column3 = ''@value3'',
datecolumn BETWEEN ''@startdate'' AND ''@enddate''
GROUP BY @column1, @column2';
DECLARE @params NVARCHAR(MAX) = '@column1 VARCHAR(MAX),
@column2 VARCHAR(MAX),
@startdate DATE,
@enddate DATE';
EXEC sp_sqlexec @sqlquery, @params,
@column1 = @column1,
@column2 = @column2,
@startdate = @startdate,
@enddate = @enddate;
END
GO
@ value3从哪里来? –
这个动态sql被内置到将被ssrs报告使用的sproc中。 @ value3是逗号分隔的多选值,它作为字符串参数传递给sproc。 –
So @ value3是一个字符串列表,或者是一个整数列表,或者是一个恰好是逗号分隔值列表的单个字符串值?你能举一个这个以逗号分隔的字符串和第3列数据的例子吗?我建议你在开始尝试动态构建它之前,先在Management Studio中获得一个实际的查询(你的语法目前有几种错误)。 –