SSRS在数据集的字段中从CTE获取列名

时间:2014-12-11 00:02:45

标签: reporting-services ssrs-2008 ssrs-2008-r2 ssrs-grouping

我在SSRS中运行使用2个公用表表达式的查询。查询设计器中的查询运行正常,但是当我按下确定并且数据集形成时;数据集中的字段是cte中select *语句中的列。如何让我在cte中创建的列显示在ssrs中我的数据集的字段中?任何帮助深表感谢。

IF @FilterByEventCode IS NULL 
  BEGIN 
      SELECT * 
      FROM 
  dbo.Historywithqualityfilter(@FQN, '.Event Code,.Event Description', 
         Dateadd(mi, -10, @DateStart), @DateStop, 'good', 'KLN-FTVP') 
  END 
ELSE 
  BEGIN 
      WITH t1(timestamp, eventcode) 
           AS (SELECT localtimestamp, 
                      valueasstring 
               FROM   dbo.Historywithqualityfilter (@FQN, '.Event Code', 
                      Dateadd(mi, -10, @DateStart), 
                              @DateStop, 'good', 'KLN-FTVP') 
               WHERE  @FilterByEventCode = valueasstring), 
           t2(timestamp, eventdescription) 
           AS (SELECT localtimestamp, 
                      valueasstring 
               FROM   dbo.Historywithqualityfilter (@FQN, '.Event Description', 
                              Dateadd(mi, -10, @DateStart), @DateStop, 'good', 
                      'KLN-FTVP')           
              ) 
      SELECT * 
      FROM   t1 a 
             INNER JOIN t2 b 
                     ON a.timestamp = b.timestamp 
  END 

1 个答案:

答案 0 :(得分:1)

我注意到SSRS在查询构建器中以这种方式获取所有字段时出现问题,并且您设置了所有参数,以便在单击&#时显示最大字段数34;刷新字段"它仍然会按照自己的意愿行事。

对我来说,你只有两个解决方案,第一个是编辑你的查询,以便最大的字段不会影响你输入的参数,推送刷新字段,然后将查询更改回原来的状态(但是要求得很好不要再次刷新字段,因此取消报表生成器的任何请求以执行此类操作。)

第二种是手动创建缺失的字段。