ユーザー指定のパラメーターに応じて結果を返すレポートを作成しています。レポート パラメータは 3 つあります。1 つは「場所」のドロップダウンで、残りの 2 つは「user_id」とユーザーの姓または名で検索するテキスト パラメータです。これは私が現在使用しているものです:
SELECT *
FROM UserTable1
WHERE Location = @Location
AND (user_id LIKE '%'+@SearchUserID+'%'
AND first_name LIKE '%'+@SearchUserName+'%'
OR last_name LIKE '%'+@SearchUserName+'%')
ユーザーが @SearchUserID パラメータ フィールドを空白のままにした場合、すべての user_ids が返されます (他の 2 つのパラメータを満たすもの)。指定すると、user_id にその部分文字列を持つ user_id が返されます。@SearchUserName パラメータ フィールドについても同じことが言えます。空白のままにすると、他のパラメーターを満たすすべてのユーザーが返されます。指定した場合、first_name または last_name にその部分文字列を持つすべてのユーザーを返す必要があります (ただし、他のパラメーターを満たす結果のみ)。両方を空白のままにすると、すべてのユーザーが返されます。
上記のクエリが機能していません。@SearchUserName パラメーターを満たす結果を返すだけのようですが、@SearchUserID パラメーターは無視されます。これを修正する方法はありますか?式を使用して、@SearchUserID フィルターを Tablix 自体に配置しました: =" " & Parameters!SearchUserID.Value & " " しかし、これによりパフォーマンスが大幅に低下しました..