SQL查询结果和SSRS结果不匹配
我创建了一个可以传递多个参数和多个条件的SQL 范例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会返回空记录。 顺便说一句,查询
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抛出的。