【发布时间】:2018-05-12 22:32:02
【问题描述】:
所以我遇到的问题让我完全困惑。我有一个使用具有 4 个参数的查询的数据集。用户可以为不同的参数选择常规选项,除了一个选项“全部”,如果用户选择它将选择所有选项。
我运行 SSRS 报告,由于某种原因,当用户仅在其中一个参数上选择“全部”时,它不返回任何记录,只是一个空白表。我尝试在 SSMS 上的数据集后面重新创建相同的查询,并在相同的问题参数中输入“ALL”选项,它会返回我希望看到的所有记录。
查询:
Declare @workingParam1 as varchar(200)
Declare @workingParam2 as varchar(50)
Declare @workingParam3 as varchar(50)
Declare @problemParam as varchar(50) -- this one is giving me problems only
-- if I choose ' ALL'
SELECT Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9
FROM View
WHERE
(Col1 = @problemParam OR @problemParam = ' ALL') And
(Col2 = @workingParam1 OR @workingParam1 = ' ALL') And
(Col3 = @workingParam2 OR @workingParam2 = ' ALL') And
(Col4 = @workingParam3 OR @workingParam3 = ' ALL')
ORDER BY Col1, Col2, Col3
谢谢!
【问题讨论】:
-
我不确定在 SQL Server 中是否有任何设置可以更改此设置,您可能已经使用过该设置,但通常
'%' = <somehting not '%'>是错误的,我猜您的[field]不是等于'%'。也许您想使用LIKE而不是=? -
哎呀,我确实输入了 = 而不是 = 我是从记忆中输入的,我将编辑问题
-
达里尔,我想你改错了(在
WHEN而不是CASE的左边)...;) -
嘎哈..谢谢伙计!我现在刚刚编辑,我可以访问我的查询并使用 M. Ali 的版本更新它,因为它看起来更干净
标签: sql sql-server ssms ssrs-2012