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中獲得一個實際的查詢(你的語法目前有幾種錯誤)。 –