SSRS のストアド プロシージャからの複数のデータセット 質問する

SSRS のストアド プロシージャからの複数のデータセット 質問する

以下のように複数の結果セットを返すストアドプロシージャがあります

CREATE StoredProcedure sp_MultipleDataSets
AS
BEGIN
    SELECT EMPID, ENAME, JOB, SAL, DEPTID FROM EMP -- first result set
    SELECT DEPTID, DNAME, LOC FROM DEPT --second result set
END

BIDS で、新しいレポートを作成するときに、データセットのストアド プロシージャを構成しました。最初の結果セットから返された列のみを含むデータセットが作成されます。2 番目の結果セットは識別されません。

上記のようなストアドプロシージャから両方の結果セットのデータセットを作成するにはどうすればよいでしょうか

ベストアンサー1

残念ながら、ドキュメントの説明はこちら:

単一のクエリを通じて複数の結果セットが取得された場合、最初の結果セットのみが処理され、他のすべての結果セットは無視されます。

(発見元:この質問

したがって、次の 2 つの可能性のいずれかを使用することをお勧めします。

(1)手順を2つの別々の手順に分割します。1つはEMPからデータを返す手順、もう1つはDEPTからデータを返す手順です。そして、新しい手順に2つの別々のデータセットとしてアクセスします。

(2) 2 つの個別のクエリを結合し (各行を生成したクエリを示す追加の列を含む)、レポートを適切にフィルター処理または条件付き書式設定します。結合されたクエリは次のようになります。

SELECT EMPID ID, ENAME NAME, JOB JOB_LOC, SAL, DEPTID, 'EMP' SOURCE 
FROM EMP
UNION ALL
SELECT DEPTID ID, DNAME NAME, LOC JOB_LOC, NULL SAL, DEPTID DEPTID, 'DEPT' SOURCE
FROM DEPT

おすすめ記事