「ALL」フィルタリングの実装で問題が発生しているパラメータは、質問からはあまり明確ではありません。しかし、2つのクエリを見ると、@p_ServerNameのように見えます。 パラメータ。最初のクエリでは、他の2つは「ALL」フィルタリングが適切に行われたようです。
したがって、問題はここにあるはずです:
(c1.SystemName = @p_ServerName OR c1.SystemName = c1.SystemName)
まず、2番目の部分で何を達成しようとしていますか? c1.SystemName=c1.SystemName 常にtrueになります(c1.SystemNameがNULLでない限り) それが目標である場合は、c1.SystemName IS NOT NULLを使用してください
これはもっと似ているはずだと思います:
(example@sqldat.com_ServerName OR @p_ServerName='all')
これが他の2つのパラメーターの実装方法であるため、何かが足りない可能性があります。
また、UNIONedクエリソリューションはSSRSの動作方法である必要があると言ったときに、どういう意味かわかりません。 SSRSは、パラメーターに基づいてクエリを書き換えるのではなく、クエリで使用できるようにそれらの変数にその値を固定するだけです。パラメータ@p_ServerNameの場合 は文字列であり、文字「all」を含む単なるVARCHAR変数です。