SSRS动态数据集

时间:2015-07-27 07:44:31

标签: dynamic reporting-services dataset

我已创建动态数据集,但我无法继续使用数据集中的parameterName比较。

声明@tableName varchar(100);

选择          [名称]为column1         ,[定义]为第2列         ,'查看'为column3        来自@tableName 联合所有 SELECT
         [DayOfWeek]为column1         ,[MonthName]为column2         ,'共同'为第3栏          来自@tableName

所以,如果我对tableName进行硬编码,那么这个SQL工作得非常好,但是当我传递参数时,它会中断。另请参阅第3列,此列实际上根据模式名称区分数据集,以便我可以比较结果集(数据集)中的此模式名称,然后基于@tableName参数,我应该只能选择一个数据表

所以,我有两个问题 1.将动态tableName作为参数传递 2.比较where子句中的ParameterName,从动态数据集中选择特定数据。 请帮我。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用以下脚本来创建DataSet 声明一个表类型变量&插入结果集..一旦成功,您可以通过添加过滤条件来扩展您的脚本... All all Best!

DECLARE @tableName VARCHAR(100)='Test';
DECLARE @DynamicTable AS Table(column1  VARCHAR(255),column2  VARCHAR(255),column3  VARCHAR(255))
DECLARE @Query AS VARCHAR(MAX)=''
SET @Query='
    SELECT [NAME] AS COLUMN1 ,[DEFINITION] AS COLUMN2 ,''VIEW'' AS COLUMN3 FROM ' + @TABLENAME 
    +
    ' 
    UNION ALL 
    SELECT
    [DAYOFWEEK] AS COLUMN1 ,[MONTHNAME] AS COLUMN2 ,''COMMON'' AS COLUMN3
    FROM ' + @TABLENAME

--PRINT @Query
Insert Into @DynamicTable 
EXEC (@Query)
Select * From @DynamicTable