我有一个名为 @vConsultant 的参数,我在存储过程和 SSRS 报告中使用它。该参数是由该查询填充的下拉菜单:
select distinct c.nameConsultant
from dataTable d
left join consultants c on d.nameConsultant= d.recID
“dataTable”是我的主要数据表,存储顾问的ID。Consultants 是存储名称的表。
问题:在dataTable中,顾问是一个可选字段。而且,在报告中,我的用户不仅希望看到他们在 SSRS 下拉列表中选择的顾问,还希望看到 NULL 值(用户没有指定顾问的地方)。但是,“NULL”不会作为值显示在 SSRS 的下拉菜单中。
在存储过程中,当我想返回 NULLS 时,我使用 where 子句。所以......我的过程是:
CREATE PROCEDURE [dbo].[spReportProc]
@vConsultant varchar(max)
AS
BEGIN
--Get comma-delimited list of consultants to allow SSRS multi-value select.
Select @vConsultant = ',' + @vConsultant + ','
create table #Consultant
(
nameConsultant varchar(1000)
)
Insert Into #Consultant
Select nameConsultant
From consultants
Where @vConsultant Like '%,' + nameConsultant ',%'
And classification = 'Implementation Consultant'
Group By nameConsultant
Select * From dataTable d
left join consultants c on d.nameConsultant= d.recID
Where
@vConsultant Is NULL Or @vConsultant Like '%,' + i.firstName + ' ' + i.lastName + ',%')
END
但是以这种方式指定 NULL 并不会在 SSRS 中引起注意。有没有办法在 SSRS 中允许 NULL 值而不实际指定 NULL 作为 SSRS 下拉列表的一部分?我尝试在 SSRS 中选择“允许 Null”和“允许空白”复选框,但这也不起作用。
让我知道是否需要更多说明。谢谢!