0

次のような 1 対多の関係を持つ SSRS (Microsoft SQL Server Reporting Services) の SQL データセットを返しています。

ID REV イベント

6117 B FTG-06a
6117 B FTG-06a PMT
6117 B GTI-04b
6124 A GBI-40
6124 A GTI-04b
6124 A GTD-04c
6136 M GBI-40
6141 C GBI-40

次のように、最後の列 [Event] にカンマ区切りのフィールドとして表示したいと思います。

ID REV イベント
6117 B FTG-06a、FTG-06a PMT、GTI-04b
6124 A GBI-40、GTI-04b、GTD-04c
6136 M GBI-40
6141 C GBI-40

SSRS側でこれを行う方法はありますか?

4

1 に答える 1

0

SSRS側ではなくSQL側で連結する必要があります。そうすれば、これらの結果をストアドプロシージャで結合して、レポートレイヤーに送信できます。

データベースはデータを処理するためにあることを忘れないでください。レポートはプレゼンテーション層にのみ使用する必要があるため、このデータを解析する関数を取得しようとして疲れる必要はありません。

最善の方法は、これをsprocレベルで実行し、データをsprocからレポートにプッシュすることです。

あなたの編集に基づいて、これはあなたがそれを行う方法です:

フィールドを連結するには、COALESCEを見てください。次に、リストしたすべての値の文字列連結を取得します。次に例を示します。

use Northwind

declare @CategoryList varchar(1000)
select @CategoryList = coalesce(@CategoryList + ‘, ‘, ”) + CategoryName from Categories

select ‘Results = ‘ + @CategoryList

ID値という追加のフィールドがあるため、クエリに値を追加するだけでは不十分です。これでCURSORを使用する必要があります。そうしないと、計算されたクエリに追加のフィールドを含めることについて悪名高いエラーが発生します。

さらにヘルプが必要な場合は、こちらをご覧ください。「アルベルト」によって具体的に投稿された下部のコメントを確認してください。彼にも同様の問題があり、彼のコメントを使用して理解できるはずです。

于 2010-07-19T18:35:17.453 に答える