0
我需要根據參數值過濾我的結果。如果說"Open"
然後DueDate
列應該是= NULL,
如果說'Closed'
是DueDate = NOT NULL
,如果說"Both"
那麼它應該抓住所有DueDate
小號如何在SSRS中編寫表達式來過濾數據
我已創建查詢參數「狀態」這給了我3個可能的值:
接下來,我創建的報告參數"Status"
和Allow Multiple Values
現在我去我的主查詢並轉到過濾器:
在這裏,我不能明白,我怎麼能寫一個表達式說:
如果報告「狀態」值=如果報告「狀態」值=「關閉」,則DueDate IS NOT NULL, 並且如果報告「狀態」值=「兩者」,則向我顯示所有DueDate(null和不爲空)
另一件事是我已經有case語句在我的查詢:
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的過濾值」。 我修改了我的帖子,並添加了代碼,這些代碼已經存儲在我的存儲過程中(我不是它的作者),但是我可以在SSRS報告中使用該案例聲明嗎?爲了不布爾過濾器,但「打開」,「關閉」和「兩個」? – Oleg
@ Oleg,它對我來說工作得很好。你確定你在過濾器中使用完全相同的表達式和'='來設置'Operator'。 –
我添加了一個剪輯。 – Oleg