Как фильтровать столбец, используя список параметров нескольких значений в SSRS
Я новичок в SSRS. То, что я считал очень простым, заняло у меня 1 день, и я не могу это исправить. Все, что мне нужно, это следующее
Select * from table1 where len(username) <= 6 Select * from table1 where len(username) >= 7
Я хочу отобразить меню выпадающих меню с двумя вариантами «Короткое имя пользователя» и «Длительное имя пользователя». Когда имя пользователя нажимается на короткое имя пользователя, отображается первый результат запроса, и когда пользователь нажимает «Длинные имена пользователей», отображается второй результат запроса.
Что я сделал до сих пор, я добавил список параметров с двумя значениями, т.е. Short parameter list = 6 и Long parameter list = 7. Затем я добавил два фильтра. В первом выражении = len (NameColumn.value) operator = <= value = @parameter. Во втором выражение = len (NameColumn.value) operator => = value = @parameter. Можете ли вы, пожалуйста, что я могу сделать для ее достижения.
- Определение отчета SSRS новее, чем сервер
- Несколько гипер-ссылок в одной ячейке в отчете SSRS
- Как установить описание папки во время развертывания с помощью Visual Studio?
- SSRS Subreport выполняется несколько раз, я хочу, чтобы он выполнялся один раз
- Результат SSRS отличается от результата SSMS тем же запросом
- SQL find Клиенты, с которыми не удалось связаться за последние 45 дней
- Как найти недопустимый символ Char в таблице SQL
- Отчет SQL Server Reporting Studio с сообщением «ERROR #» или недопустимой ошибкой типа данных
- # Ужасно даже после использования IIF, чтобы избежать деления на нуль в выражении
- Подводный отчет не может быть показан. Под-отчет работает отдельно - не с основным докладом
- Разрешить множественные значения в SSRS
- SSRS - повторное использование временной таблицы в нескольких наборах данных
- Цвет клиента в выражении IIF -SSRS
Вы можете сделать аналогичный FILTER в наборе данных, о котором упоминалось @ energ1ser.
У вас будет параметр, в котором пользователь выбирает Long или Short. Вы можете использовать для этого разные значения.
Для выражения вы должны использовать:
=IIF( (Parameters!YourParameter.Value = "Short" and LEN(FIELDS!USERNAME.VALUE) <= 6) OR (Parameters!YourParameter.Value = "Long" and LEN(FIELDS!USERNAME.VALUE) >= 7), 1, 0)
Для типа используйте Integer , Operator = и Value 1 .
Это выражение вычисляет каждую строку как 0 или 1, а затем фильтрует ее на 1 .
Чтобы отобразить ВСЕ записи, добавьте еще один символ ИЛИ, если для параметра выбрано значение Все.
=IIF( (Parameters!YourParameter.Value = "Short" and LEN(FIELDS!USERNAME.VALUE) <= 6) OR (Parameters!YourParameter.Value = "Long" and LEN(FIELDS!USERNAME.VALUE) >= 7) OR (Parameters!YourParameter.Value = "All"), 1, 0)
Я думаю, что лучше выполнить фильтрацию в запросе, чем использовать фильтры SSRS. Попробуйте этот запрос.
select * from table1 where (@Parameter = 0 and len(username) <= 6) or (@Parameter = 1 and len(username) >= 7)
И ваш параметр можно настроить таким образом.