Может ли кто-нибудь сообщить, какой синтаксис должен быть при использовании оператора IN внутри фильтра таблицы. Я пробовал ниже, но snytax не прав:
Может ли кто-нибудь сообщить, какой синтаксис должен быть при использовании оператора IN внутри фильтра таблицы. Я пробовал ниже, но snytax не прав:
Если вы просто измените свойство Значение и просто добавьте список значений, который должен работать:
В любом случае это помогло мне в быстрой проверке.
Интернет-книги, по-видимому, довольно легкие на примерах, но я нашел одну ссылку; см. пример In
в Commmonly Used Filters. Было бы хорошо, если бы это было объяснено лучше.
У меня были некоторые проблемы с этим. Microsoft собственной документации указывает, что в поле Значение должен быть указан простой список значений с разделителями-запятыми. Это сбивает с толку, потому что это НЕ. По крайней мере, это не для меня, и я использую SSRS 2012 с Visual Studio 2010.
Оказывается, когда вы используете оператор IN, SSRS ожидает массив значений. Существует несколько способов сделать эту работу для фильтра. Следующие примеры должны быть напечатаны в редакторе выражений.
Первый способ (также объясненный в блоге, приведенном ниже) - просто ввести список с разделителями-запятыми в строковое значение, а затем использовать функцию split на нем.
=split("2B,2C",",")
Или вы можете получить свой список из многозначного параметра. Параметр с несколькими значениями уже является массивом, поэтому все, что вам нужно сделать, это ссылаться на него с помощью выражения параметра, как показано ниже.
=Parameters!MultiValueParam.Value
Я узнал эту информацию через следующий блог. http://sqlblogcasts.com/blogs/simons/archive/2007/11/20/RS-Howto--Use-the-IN-operator-in-a-filter-expression.aspx
Это действительно работает:
=CStr("Value1,Value2,Value3,Value4,etc").Split(",")
Это проверено в SSRS 2012.
Удалите из выражения выражение =
, т.е.
"criteria one" , "criteria two"
Если рекомендуемое решение как-то не работает для вас, попробуйте использовать полуконференцию в качестве разделителя.
Пример: критерии 1; критерии два
Это сработало для меня.
Это работало для меня в SSRS 2012.
"критерии один", "критерии два"
Для целых значений вы можете использовать:
Тип: Текст
Оператор: В
Значение: = Новое целое число() {8800,8820}
Должен работать в 2008 R2 и более поздних версиях
"value1" "value2"
с одним пробелом и без запятой работал на меня. Самое смешное, что когда вы возвращаетесь, чтобы посмотреть после тестирования, это выглядит как
value1, value2
с запятой и без кавычек. Если я обрежу это, а затем вставлю прямо обратно в то же поле, это не сработает. Это какая-то ошибка...
Базовым типом данных является nvarchar (10), а не нуль
Протестировано с VS 2017 и SSRS 2016
Моя проблема была окончательно решена после многих попыток, только используя этот метод.
Выражение
= InStrRev (полная строка с разделителем, значение для поиска)
Тип: Целое число
Оператор: < >
Значение: 0
Введите этот запрос в выражение:
=Join(Parameters!MultiValueParam.Value)
Мои значения включали косые черты. Единственный способ заставить оператора SSRS In ▼ корректно обрабатывать их был с выражением =
CStr("google / cpc,bing / cpc").Split(",")
Возможно, у меня более поздняя версия SSRS. Значения типа текстовые. Для меня работал как,
"criteria 1";"criteria 2";...;"criteria N"
Двойные кавычки обязательны.
OMG так много ответов...
Я знаю, что это работает:
1) MY SP returns VARCHAR(n) for the field I will filter in the tablix. Returning INT DOES NOT WORK in my solution. I don't know why (yet).
2) report.param.allow multiple values = true
3) tablix.filter.expression.datatype = text
4) tablix.filter.operator = IN
5) tablix.filter.value = =SPLIT(JOIN(Parameters!id.Value,","),",")
Используя этот метод, я смог вызвать SP один раз, использовать его в параметре, чтобы получить доступные значения, запустить отчет, и таблица tablix прочитала выбранные данные из шага № 5 выше и отобразила правильное количество строк.
Универсальное решение:
Выражение: [columnName]
Оператор: в
Значение: [@parameterName]
введите здесь описание изображения
Каждому из числа между числовым значением требуется одно пространство. его рабочий тон