Мне нужно отфильтровать мой результат на основе значения параметра. Если он говорит "Open"
тогда DueDate
колонка должна быть = NULL,
, если говорит 'Closed'
, что DueDate = NOT NULL
, и если он говорит "Both"
, то он должен захватить все DueDate
секкак написать выражение в SSRS для фильтрации данных
Я созданный параметр запроса «Status», который дает мне 3 возможных значения:
Затем я создал параметр отчета "Status"
и Allow Multiple Values
Теперь я иду в основной запрос и перейти к фильтрам:
А вот я не могу понять, как я могу написать выражение, говоря:
Если отчет значение «Статус» = «Открыть», а затем показать мне результат, где DueDate IS NULL, Если отчет «Состояние» = «Закрыто», то DueDate НЕ НЕТ, И если отчет «Статус» = «Оба», то покажите мне все DueDates (null и не имеет значения)
Другое дело, у меня уже есть случай заявление в своем запросе:
ALTER Procedure
AS
@ShowOpen bit = 0,
@ShowClosed bit = 0
SELECT
FROM
WHERE
AND
(
(CASE WHEN (@ShowOpen = 1) THEN
CASE WHEN (tblNoteRecipients.CompletedDate IS NULL and tblNoteRecipients.IsDiary = 1) or tblNoteRecipients.UserGUID is null THEN 1 ELSE 0 END
-- CASE WHEN (tblNoteRecipients.CompletedDate IS NULL) THEN 1 ELSE 0 END
ELSE
1
END = 1)
AND
(CASE WHEN (@ShowClosed = 1) THEN
CASE WHEN (tblNoteRecipients.CompletedDate IS NULL) THEN 0 ELSE 1 END
ELSE
1
END = 1)
OR ((@ShowOpen = 1) AND (@ShowClosed = 1))
)
Есть ли выход из него в SSRS я могу создать параметр, который принимает значения открытые, закрытые и оба?
Добавлено test1
К сожалению, он говорит: «Не удалось оценить значения фильтра для MyDataSet». Я изменил свой пост и добавил код, который уже находится в моей хранимой процедуре (я не автор этого), но могу ли я использовать этот оператор case в своем отчете SSRS? Чтобы не создавать булевых фильтров, но «Открыть», «Закрыто» и «Оба»? – Oleg
@ Олег, он отлично работает для меня. Вы уверены, что используете одно и то же выражение и '=' для параметра 'Operator' в Filter. –
Я добавил snip. – Oleg