0

Я запускаю запрос в SSRS, который использует 2 общих табличных выражения. Запрос выполняется отлично в конструкторе запросов, но когда я нажимаю ok и формируется набор данных; поля в наборе данных являются столбцами в элементе select * внутри cte. Как получить столбцы, созданные мной в 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 имеет проблемы с получением все поля таким образом, даже если вы в построитель запросов и установить все параметры так, чтобы максимум полей появляться при нажатии на кнопку «Обновить Поля "он все равно сделает то, что хочет.

Для меня у вас есть только два решения, первое - отредактировать ваш запрос, чтобы максимум полей не отображался, какие параметры вы вводите, нажимаете поля обновления, а затем меняете запрос обратно на то, что было (однако чтобы не обновлять поля снова, поэтому отмените любой запрос от строителя отчетов, чтобы сделать это).

Во-вторых, чтобы вручную создать недостающие поля.