Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server ";“否定者”;参数缺少一个值_Sql Server_Reporting Services_Ssrs 2008 - Fatal编程技术网

Sql server ";“否定者”;参数缺少一个值

Sql server ";“否定者”;参数缺少一个值,sql-server,reporting-services,ssrs-2008,Sql Server,Reporting Services,Ssrs 2008,我有一份SSRS报告,有两个数据集。一个数据集negativeEnumbers返回一列,其中包含主数据集中使用的0个或多个值 当@negativeEnumbers没有要传递的值时,问题就会出现。我得到错误: NegativeEnumbers参数缺少值 NegativeEnumbers查询并不总是返回值(这是正确的),因此我需要在没有值的情况下仍然正确执行主数据集。我以为检查“允许空值”可以解决这个问题,但不行 参数@NegativeNumbers是隐藏的,因此它不会接受空值,即使我已将其选中以允

我有一份SSRS报告,有两个数据集。一个数据集
negativeEnumbers
返回一列,其中包含主数据集中使用的0个或多个值

@negativeEnumbers
没有要传递的值时,问题就会出现。我得到错误:

NegativeEnumbers参数缺少值

NegativeEnumbers查询并不总是返回值(这是正确的),因此我需要在没有值的情况下仍然正确执行主数据集。我以为检查“允许空值”可以解决这个问题,但不行

参数
@NegativeNumbers
是隐藏的,因此它不会接受空值,即使我已将其选中以允许空值和多个值。默认值设置为
negativeEnumbers
dataset值。隐藏的不喜欢可用的值

以下是NegativeEnumbers数据集的基本代码:

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
实际的查询要比这复杂得多,它包含一个UNIONALL语句,但这说明了我要做的事情。如果第一个查询没有返回任何值,那么第二个查询将显示错误。如果数据集为空且选中了“允许空值”,为什么它不将(“”)”中的“
”替换为
@NegativeNumbers
的值

我搜索过谷歌。不走运。我使用了不同的参数选项。不走运。我重新编写了报告。什么也没有。我总是会遇到这个错误,但我不知道如何修复它

*我的头撞在桌子上,质疑我存在的意义。
*叹息


这是一些高级SSRS的东西,我不是最擅长解释的,所以如果有任何问题可以帮助我澄清我想做的事情,请提问

所以我做了一个变通方法,让我的NegativeEnumber始终返回一个数据集

    if exists (select query)
    then select query
    else '2'         
     //my key will never equal 2 so the main dataset will 
    //always return the results from  only the positives

很容易解决问题

“参数@NegativeEnumbers-是隐藏的,所以它不会接受空值”-这听起来不对。隐藏参数不会阻止它接受空值,如果数据集未返回任何结果,将返回空值。是否可以尝试从NumTable将可用值数据集查询更新为类似于
选择强制转换(Nr AS VARCHAR(20)),其中Nr<0 UNION ALL SELECT“”
?@Nathan抱歉,我不能使用多值的null,如果我得到多个负值的结果,我需要使用多值。我有一个union all作为我的主数据集。我的db表如下所示:我有一个union all作为我的主数据集。我的db表(在本例中)有3行,每行看起来如下:行1)123456,01,-5.50行2)123456,01,5.50,行3)987654,01,4.35。前两个数字组成一个键,如果该键有带负数的行,我获取它们,如果它没有负数,那么我获取所有正数。当我没有要返回的负数时,麻烦就来了。SSR随后突然出现。