2

SQL Reporting Services では、同じ行の他の複数の列の値に応じて、データセットから特定の値を取得できますか?

したがって、これが私のデータセットである場合:

Id    | Name      | Number | Score
1     | "John"    | 16     | 22
2     | "Jane"    | 64     | 24
3     | "John"    | 20     | 18

ある種の「where」句が欲しいので、たとえば、すべての値を取得できName == 'John'ますNumber == 16。これは を返し22ます。

LookUpSet を試しましたが、他の 1 つの列の値しか比較できません。2つを比較する必要があります。

4

2 に答える 2

3

実際には、ルックアップ関数が機能する方法は、比較に式を使用することです。したがって、問題を正しく理解していれば、次のようなことができます。

=Lookup(Fields!Name.Value+"-"+CStr(Fields.Number.Value), Fields!Name.Value + "-" + CStr(Fields.Number.Value), Fields!Score.Value,"Dataset2")

于 2012-05-29T22:26:07.877 に答える
0

DataSet に基づいて新しい Tablix を作成する場合、次の式に基づいて列を追加できます。

Iif(Fields!Name.Value = "John" & Fields!Number.Value = Parameters!Number.Value, Fields!Score, 0)

これは、Name 列の値が "John" で Number が前述の非表示パラメーターと一致する場合は Score 列の値を返し、一致しない場合は 0 を返します。次のように、これを RowのVisibility式と結合することもできます。

Iif(Fields!Name.Value = "John" & Fields!Number.Value = Parameters!Number.Value, false, true)

これにより、目的の値に一致しない行が非表示になります。また、必要に応じて、Name 値をパラメーターとして簡単に渡すこともできます。

または、実際に DataSet 自体をフィルター処理する場合は、Tablix レベルではなく、[ DataSet プロパティ] > [フィルター] タブでこれらの式を指定できます。レポートの他の場所で DataSet を再利用する必要があるかどうかによって異なります。

于 2012-05-29T16:29:00.517 に答える