我在 SSRS 中有一个包含两个数据集的报告。一个数据集NegativeNumbers
返回一列,其中包含在主数据集中使用的 0 个或多个值。
当@NegativeNumbers
没有要传递的值时出现问题,我收到错误:
NegativeNumbers 参数缺少值。
NegativeNumbers 查询并不总是返回一个值(这是正确的),所以我需要主数据集在没有值的情况下仍然正确执行。我认为检查“允许空值”会解决这个问题,但没有。
该参数@NegativeNumbers
是隐藏的,因此它不会采用空值,即使我已检查它以允许空值和多个值。默认值设置为NegativeNumbers
数据集值。隐藏的不喜欢可用的值。
以下是 NegativeNumbers 数据集的基本代码:
select colName
where colName < 0 -- returns all values less than 0 as values
-- for parameter "NegativeNumbers"
以下是主数据集的基本代码:
select bunchOfColumns
from mytable
where aColumnName in (@NegativeNumbers)
-- this returns only the values where the column value is a match for one
-- of the values returned by the @NegativeNumbers dataset
实际的查询比这复杂得多,并且包括一个 union all 语句,但这说明了我正在尝试做的事情。如果第一个查询没有返回任何值,那么第二个查询会给我错误。如果数据集为空并且检查了“允许空值”,为什么它不只是用“ in ('')
”代替值?@NegativeNumbers
我已经搜索了谷歌。没运气。我玩过不同的参数选项。没运气。我已经重建了报告。没事了。我总是收到这个错误,但我不知道如何解决它。
*在我的桌子上敲打我的头,质疑我编码存在的意义。
*叹
这是一些高级 SSRS 的东西,我不是最擅长解释的,所以如果有任何问题可以帮助澄清我正在尝试做的事情,请提出来。