2014-12-11 65 views
0

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

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

我已经注意到的是,SSRS有越来越以这样的方式各领域的问题,甚至当你在查询生成器是和你设置的所有参数,这样,当你点击“刷新最高领域的apear领域“它仍然会做它想做的事情。

对我来说,你只有两个解决方案,第一个是编辑你的查询,以便字段的最大值apear不管你输入什么参数,刷新字段,然后将查询改回原来的状态由于不再刷新字段,因此取消了报告生成器的任何请求以执行此类操作)。

第二个是手动创建缺少的字段。