Параметр отчета SSRS, вызывающий проблемы

У меня возникла странная проблема с параметрами отчета SSRS. В настоящее время работает над версией SSRS 2016. Мы подключаемся к моделям SSAS и создаем наборы данных с помощью запросов DAX в отчете.

Вот образец запроса DAX, который используется в моем наборе данных отчета,

evaluate
summarize(
calculatetable(
('Field Measures',
  PATHCONTAINS(substitute( 
  substitute( 
  substitute( 
  @Parameter_District
  , "{ ", "") 
  , " }", "") 
  , ",", "|") , 'Field Location'[District]),
  PATHCONTAINS(substitute( 
  substitute( 
  substitute( 
  @Parameter_City
  , "{ ", "") 
  , " }", "") 
  , ",", "|") , 'Field Location'[City])
  )
  'Field Fact'[Field Interview Number],
  'Occurred Date'[Date],
  'Occurred Date'[Year]
 ))

У меня есть два параметра (Район и Город), определенные в этом запросе, и оба поля взяты из одной и той же таблицы Местоположение в базе.

Проблема, с которой я столкнулся, заключается в том, что этот запрос работает хорошо, если я удалю второй параметр "CITY". Но это не удается, когда я включаю это в запрос. для простоты я упомянул здесь только 2 параметра, но у меня есть около 5 параметров из той же таблицы, которые работают нормально. введите описание изображения здесь Я бью головой, почему это происходит только тогда, когда я включаю [CITY] объект в список параметров, и почему он работает хорошо, когда я удаляю это. Буквально с ума сошел :(

Пожалуйста, предложите мне способ отладки этой проблемы.

Огромное спасибо. Баладжи


person Balaji    schedule 14.03.2019    source источник
comment
У меня 2,77 026 Количество строк для столбца CITY. где, поскольку у других параметров очень мало строк (менее 10). Повлияет ли количество строк в столбце на создание параметров отчета?   -  person Balaji    schedule 14.03.2019


Ответы (2)


У меня есть решение моей проблемы, но у меня нет логической причины, почему это работает.

Разрешите мне повторно опубликовать запрос DAX, который я использовал в своем отчете,

evaluate
summarize(
calculatetable(
('Field Measures',
  PATHCONTAINS(substitute( 
  substitute( 
  substitute( 
  @Parameter_District
  , "{ ", "") 
  , " }", "") 
  , ",", "|") , 'Field Location'[District]),
  PATHCONTAINS(substitute( 
  substitute( 
  substitute( 
  @Parameter_City
  , "{ ", "") 
  , " }", "") 
  , ",", "|") , 'Field Location'[City])
  )
 'Field Fact'[Field Interview Number],
 'Occurred Date'[Date],
 'Occurred Date'[Year],
 "Field Count",[FieldInterview - Count]
  ))

Если мы посмотрим на исходный код, который я опубликовал ранее, и тот, который я опубликовал сейчас, между ними будет разница в одну строку. т. е. значение меры (количество полей). при форматировании своего вопроса я удалил эту последнюю строку кода (по ошибке). Но затем, когда я вернулся к своему собственному вопросу для любых возможных ответов, я заметил эту разницу и просто попытался использовать запрос, удалив вышеупомянутый Измерение значение, и это сработало как по волшебству !!

Итак, я действительно не понимал, как внутри работают меры, объединения и параметры. Я все еще открыт для любых обсуждений / мнений экспертов здесь.

Спасибо. Баладжи

person Balaji    schedule 14.03.2019

Простой способ: вместо создания параметра с помощью DAX перейдите к фильтру

  1. Создать основной набор данных1 (все обязательные поля, включая столбец города)
  2. Создайте набор данных 2 для параметра, например (получите только столбец города в этом наборе данных)
  3. Создайте параметр с помощью набора данных 2, затем перейдите к основному набору данных 1 - свойства - фильтр. - добавить столбец и параметр в выражение. это будет работать
person Raj    schedule 11.09.2019