Report Builder 2.0で、次のようなデータを含むテーブルを作成しようとしています。
Person | StrID's
-------------------
Jim | a, b, c, d
Mary | h, k
Sue | l, m, p, z
問題は、OracleSQLクエリが次の形式でデータを返すことです。
Person | StrID
--------------
Jim | a
Jim | b
Jim | c
Jim | d
Mary | h
等々。このチュートリアルLISTAGG
で説明されているように、Oracleで使用するアクセス権がありません。また、非常に限られたインターフェイスを介してデータベースにアクセスする必要があるため、使用しているOracleのバージョンを使用または通知することもできません。レポートビルダーの関数を調べましたが、集計関数を使用して複数の文字列値を連結する方法が見つかりません。Personごとにグループ化されたテーブルを作成すると、StrIDごとに個別の行が取得されます。を使用すると、「#Error」がテーブルセルに表示されます。これは実際には複数値のフィールドではないため、Personごとに1つの値であると思います。EXPLAIN PLAN
Aggregate
Join(Fields!StrID.Value, ", ")
Fields!StrID.Value
SQLまたはReportBuilder2.0 / Visual Basicのいずれかを使用して、関連付けられたStrIDのリストをPersonごとに1行に表示する方法を教えてもらえますか?
編集:誰かがそれを使用して創造的な解決策を考えることができれば、私はLAG関数 を使用することができます。関数PARTITION BY
と組み合わせて使用することもできます。LAG