0

SQL のストアド プロシージャから SSRS レポートを作成しています。レポートにデータセットを追加すると、フィールドがデータ セットに返されるように、これをプロシージャの先頭に追加する必要があることがわかりました。ストアド プロシージャから:

IF 1=2 SELECT '' as [Date], '' as [Portfolio ID], '' as [Portfolio Base Ccy], 0 as [All in Market Value Base], 0 as [All in Market Value Converted]

なぜ私はこれをしなければならないのですか、なぜSSRSは単に拾わないのですか:

SELECT [Date], [Portfolio ID],   [Portfolio Base Ccy], [All in Market Value Base], [All in Market Value Converted]
FROM @Worktable

私の手順の一番下から、または

SELECT * FROM @Worktable

?

編集:わかりました、プロシージャにデバッグパラメータがあることに直面して、プロシージャの問題を絞り込んだと思います。したがって、このパラメーターが「Y」に設定されている場合は、手順の各ステップが表示されるため、デバッグが容易になります (必要に応じて例を追加できます)。また、手順の最後に、最終結果セットの if ステートメントがあります。

IF @ReportType IN ('SSD', 'TTD', 'STD')
BEGIN
SELECT.........
END

IF @ReportType IN ('SS', 'TT', 'ST')
BEGIN
SELECT.........
END

これも問題になるのでしょうか?

4

1 に答える 1

0

私は自分の問題を解決しました。手順全体を通して、以下のようにトラブルシューティングのためにデバッグを実行しています。

IF @Debug = 'Y'
    BEGIN
        SELECT @Section AS Section
        SELECT * FROM #Worktable ORDER BY [Portfolio ID]
    END

これにより、ssrs はレポートのメタデータが何であるかについて混乱しました。これが発生しないように手順を修正したので、「IF 1=2 SELECT........」は不要になりました。

于 2012-10-05T10:10:02.693 に答える