【问题标题】:SSRS Getting Column Names from CTE in the Fields of a DatasetSSRS 从数据集字段中的 CTE 获取列名
【发布时间】:2014-12-11 00:02:44
【问题描述】:

我正在 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 

【问题讨论】:

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


    【解决方案1】:

    我注意到的是,即使您在查询生成器中并且设置了所有参数,以便在单击“刷新字段”时出现最大字段数,SSRS 也无法以这种方式获取所有字段。还是会做自己想做的事。

    对我来说,您只有两个解决方案,第一个是编辑您的查询,以便无论您输入什么参数,都会显示最多的字段,推送刷新字段,然后将查询更改回原来的状态(但是要小心不要再次刷新字段,因此请取消报告生成器的任何请求以执行此类操作)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 2014-05-22
      • 2015-03-19
      相关资源
      最近更新 更多