SQL查询结果和SSRS结果不匹配

SQL查询结果和SSRS结果不匹配,sql,sql-server,ssrs-2008,Sql,Sql Server,Ssrs 2008,我创建了一个可以传递多个参数和多个条件的SQL 范例 SELECT * FROM movement WHERE Arrivalid IN (@ArrivalID) OR DepartureID IN (@DepartureID) 有了这个脚本,SELECT*FROM movement WHERE Arrivalid IN('A_1234')或DepartureID IN(''),我就能够从SSMS中取出记录。 然而,当我在SSRS中运行它时,SSRS会返回空记录。 顺便说一句,查询

我创建了一个可以传递多个参数和多个条件的SQL

范例

 SELECT * 
 FROM movement 
 WHERE Arrivalid  IN (@ArrivalID) OR DepartureID IN (@DepartureID)
有了这个脚本,
SELECT*FROM movement WHERE Arrivalid IN('A_1234')或DepartureID IN('')
,我就能够从SSMS中取出记录。 然而,当我在SSRS中运行它时,SSRS会返回空记录。 顺便说一句,查询在SSRS中创建为数据集

必须传入两个参数吗?但我已经设置了“允许空白值(“”)”。 :

此简单表格格式上没有创建任何筛选器。 有人知道我的SSRS设置出了什么问题吗

加上:

在Dataset属性中,我为多个参数添加了“Spilt”。

默认值的设置

尝试设置该参数的默认值:

假设您希望能够输入到达或离开ID,那么您应该能够这样做

 SELECT * 
 FROM movement 
 WHERE (Arrivalid IN (@ArrivalID) OR @ArrivalID IS NULL)
       OR (DepartureID IN (@DepartureID) OR @DepartureID IS NULL)

我确实有一些到达和离开的默认值列表。如果输入了两个参数,则我没有问题。但是,如果只有1,则SSRS中的记录将为空。您可以尝试传递NULL值,然后在数据集生成行中:在选择之前设置@Parameter=isnull(@Parameter')?这将把所有空输入设置为空文本。您的问题应该通过上面@AlanSchofield的建议解决。这是一个疑问,而不是SSR。通过声明这些完全相同的参数并运行查询,尝试运行存储的过程或查询。Rem ssrs只是渲染,这是sql server抛出的。