1
を動的な列グループを選択:私は、ストアドプロシージャに次のように達成するために必要な動的な列BY
- パスパラメータ化カラム名。
- パラメータ化された列名を選択し、選択した列で合計グループを指定します。
コード:@の値3を仮定し
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に文字列パラメータとして渡されるコンマで区切られた複数選択値です。 –
@ value3は文字列のリスト、整数のリスト、またはコンマで区切られた値のリストである単一の文字列の値ですか?このカンマ区切り文字列の例と、column3のデータの例を挙げてください。動的に構築しようとする前に、Management Studioで実際のクエリが動作していることをお勧めします(現在の構文はいくつかの点で間違っています)。 –