2017-01-10 12 views
0

ドリルスルーサブレポートを使用するSSRSレポートがあります。 サブレポートはメインレポートで3回使用され、いくつかのパラメータが使用されます。 2つのサブレポートで、私はSexAtBirthのいずれかのパラメータを設定し、静的値女性または男性を使用しました。ここで は、パラメータのスクリーンショットである:第三サブレポートの enter image description hereスタティックリストであるSSRSサブレポートのパラメータを設定する方法

、私はNot Male or FemaleにパラメータSexAtBirthを設定したいです。 SQLではSexAtBirth NOT IN ('Female', 'Male')

SexAtBirthは複数の値を取るように設定されています。
静的な値リストを含まないように式を作成する方法がわかりません。

UPDATE は、私には、値の静的リストを作成しようとしていますし、私は、SQL Server 2008 R2上でレポートビルダー3.0を使用していますSexAtBirth parameter missing a value エラーです。 これは私がしようとしているものです:ドロップダウンリストで を:

"Female", "Male"

Female, Male

+0

いったん複数の値を持つパラメータを使用すると、IN()句で使用するリストまたは配列のように扱われます。 SexAtBirthに男性、女性、ヌル、またはその両方だけがありますか?サブレポートはどのようなクエリで実行されていますか? CaseをWhere句で使用することができます。 – Kevin

+0

これはmy ** where節です: 'WHERE AgeRange = @AgeRange AND SexatBirth NOT IN(@SexAtBirth)' 'Female、Male'のような文字列を作成します。 –

+0

クエリデザイナでクエリを実行すると'SexAtBirth'パラメータのために' Female'を入力することができ、正しい男性のみを返し、 'Male'を入力すると女性のみを返します。しかし、私は '女性、男性'のリストを作成し、未知数だけを返すようにしたいと思います。 –

答えて

0

私は(管理者を除く)のレポートをフィルタリングするためにActive Directoryを使用していた似たようなを行っています。この例では、@ UserIDはブラウザセッションからのドメインユーザーの名前です。

Where t.[Date] Between @DateFrom And @DateTo And 
(u.adsGuid = @UserID OR @UserID In (@UserAdmins)) 

しかし、SSRSでは、基本的に別のパラメータを使用して別のパラメータを入力していました。これはおそらくここでは必要ないでしょう。

WHERE AgeRange = @AgeRange AND 
    Coalesce(SexAtBirth, '') = Case @SexAtBirth 
     When 'Male' Then 'Female' 
     When 'Female' Then 'Male' 
     Else Coalesce(SexAtBirth, '') End 

これは任意のNULLを処理する必要がありますし、逆の結果をもたらす:読みやすくするためにと離れて逆ロジックから私の頭を移動するために、私は以下のような何かをしようとするだろう。 @SexAtBirthが男性/女性以外のものであれば、私たちに残りを与えてください。

関連する問題