0

@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] チェック ボックスをオンにしてみましたが、どちらも機能しません。

さらに説明が必要な場合はお知らせください。ありがとう!

4

2 に答える 2

0

複数値ドロップダウンでの null に関する問題を回避するには、"-- Optional --" というオプションを含め、null をチェックする代わりにそれを where 句で使用します。

したがって、最初のクエリは次のようになります (null がないように内部結合に変更します)。

select '-- Optional --'
union
select distinct c.nameConsultant
from dataTable d

inner join consultants c on d.nameConsultant= d.recID

プロシージャの where 句を次のように置き換えます。

Where 
    @vConsultant != '-- Optional --' Or @vConsultant Like '%,' + i.firstName + ' ' + i.lastName + ',%') 
于 2012-07-31T20:55:26.183 に答える
0

vConsultant パラメーターのパラメーター プロパティをクリックし、[null 値を許可する] プロパティをオンにして、[OK] をクリックします。レポート パラメーターにチェック ボックスが表示され、値が null であるか、選択された値であるかを選択します。

于 2012-07-31T16:17:09.370 に答える