Как в SQL Reporting Services фильтровать набор данных по параметру? - PullRequest
7 голосов
/ 15 мая 2009

Мне нужно обработать нефильтрованный набор данных, чтобы создать отчет (кстати, SQL Server 2005) .

Допустим, у меня есть столбец Имя , и я хочу добавить параметр в свой отчет, чтобы выбрать только имена, содержащие несколько символов.

Кто-нибудь знает, как обращаться с этими фильтрами?

Я безуспешно пытался это:

=Fields!Name.Value Like =Parameters!FilterName.Value

=Fields!Name.Value = = "%" + Parameters!FilterName.Value + "%"

Я бы хотел получить имена 'foo' и 'foobar', если я укажу параметр 'oo'

Редактировать: Я знаю, что фильтрация должна выполняться на стороне сервера SQL, но я не контролирую предоставленный мне набор данных (веб-служба предоставляет его методом без параметров ), поэтому я должен фильтровать на стороне отчета.

Ответы [ 5 ]

17 голосов
/ 15 мая 2009

Я отвечаю на свой вопрос, на самом деле выражение фильтра:

=Fields!Name.Value Like ="*"+ Parameters!FilterName.Value + "*"

т.е. используйте "*" вместо "%", на самом деле.

3 голосов
/ 15 мая 2009

Предпочтительной практикой является точное совпадение.

Вы можете составить список параметров с несколькими значениями из набора данных, возвращенного по вашему запросу или альтернативному запросу, тем самым гарантируя точное совпадение.

Следующая ссылка может оказаться полезной.

http://msdn.microsoft.com/en-us/library/ms155917.aspx

2 голосов
/ 15 мая 2009

Я бы посоветовал вам применить фильтр как часть оператора SQL, который выполняется для возврата набора данных, вместо того, чтобы пытаться применить фильтры в отчете служб Reporting Services. Я думаю, что SQL Engine гораздо более оптимизирован для обработки этих типов фильтров / запросов.

1 голос
/ 25 января 2011

Ваш ответ вывел меня на правильный путь :)! Может быть, это отличается от SQL Server 2005; Но у меня сработало следующее решение:

=Fields!AppName.Value    Like    ="*" & Parameters!FilterApplication.Value & "*"
0 голосов
/ 15 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...