@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 句を使用します。だから...私のprocは:
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を指定せずに、SSRSでNULL値を許可する方法はありますか? SSRS で [Allow Null] および [Allow Blank] チェック ボックスをオンにしてみましたが、どちらも機能しません。
さらに説明が必要な場合はお知らせください。ありがとう!