1 つの入力パラメーターと 2 つの多値パラメーターがあります。2 つの多値パラメーターをオプションとして設定します。2 つの多値パラメーターを選択せずに、レポートの入力から結果を取得する方法はありますか? これを試しましたが、うまくいきません:リンク
1 に答える
したがって、国を念頭に置いて、簡単な例を試してみてください。これは多値パラメーターのソリューションではないことは承知していますが、必要なことは実行します。RDL では、2 つのパラメーターを定義します。1 つは Country 用で、もう 1 つは City 用などです。次に、ストアド プロシージャから国パラメーターを設定し、名前を表示テキストとして使用し、ID を値として使用できます。(デフォルト値を null に設定すると、すべてが最初に選択されます)
SELECT C.Name, C.ID From Countries AS C
UNION
SELECT 'All', NULL
次に、country パラメーターに選択した値を使用する別の手順を使用して、City パラメーターの値を設定します (これにより前方依存関係が作成されるため、パラメーター リストで Country が City の前に表示されていることを確認してください。そうしないと、レポートの作成時にエラーが発生します)。 .
DECLARE @Country_ID int
SELECT C.Name, C.ID FROM Cities AS C
WHERE (C.Country_ID = @Country_ID)
UNION
SELECT 'All', NULL
これで、レポートの結果セットを返すプロシージャが Company と City ID パラメーターの両方を受け入れるようになり、where 句には次のようなものがあります。
DECLARE @Country Int,
@City Int
SELECT * FROM X
WHERE (X.Country_ID = @Country_ID OR @Country_ID IS NULL) AND
(X.City_ID = @City_ID OR @City IS NULL)
明らかに、クエリに合わせてこれを少し変更する必要がありますが、これにより、ユーザーは国のみを選択したり、国と都市を選択したり、何も選択したりできなくなります。
PS。null をセンチネル値として使用する予定がある場合は、問題のパラメーターの [Allow Null Value] チェックボックスをオンにすることを忘れないでください。