0
パラメータ@SearchTypeに基づいて列の数を返すストアドプロシージャがあります。最初にパラメータ値が何であるかを確認し、SELECT文がデータを返します。パラメータに基づいてデータを返すプロシージャを使用してSSRSレポートを作成する方法
私の問題は、どのようにSSRSでこの手順を使用できますか?それは私にテーブルやマトリックスに追加することができるように私に任意の列をもたらすものではありません。
SSMSでは、手順は正常に動作します。 そのための回避策があります。
ありがとうございますが、データセットに手動でクエリ出力の列を定義する必要が
ALTER PROCEDURE dbo.RPT_spLoadUserOpenTasks
(
@UserGUID varchar(8000) = NULL,
@NoteStoreType INT = NULL,
@DateFrom datetime = NULL,
@DateTo datetime =NULL,
@LineGUID varchar(8000) = NULL
)
AS
IF @SearchType = 0
BEGIN
SELECT DISTINCT
TOP 100 PERCENT
Column1,
Column2,
Column3
--other columns
FROM
dbo.tblNoteEntities (nolock)
--some other JOINs here
WHERE tq.LineGuid IN (SELECT * FROM @LineTable)
AND
(@UserGUID IS NULL OR tblNoteRecipients.UserGUID = @UserGUID)
ORDER BY Column1
RETURN
END
--------------------------------------------------------------------------------
if @SearchType = 1 --eq and eq access
BEGIN
SELECT DISTINCT
TOP 100 PERCENT
Column4,
Column5,
Column6
FROM
dbo.tblNoteEntities (nolock)
--some other JOINs here
WHERE tq.LineGuid IN (SELECT * FROM @LineTable)
AND
(@UserGUID IS NULL OR tblNoteRecipients.UserGUID = @UserGUID)
ORDER BY Column1
RETURN
END
--------------------------------------------------------------------------------
if @SearchType = 3 --And so on
ありがとうございました。列の数は、パラメータの値によって異なります。どこかの似たような例がありますか? ありがとう – Oleg
あなたのケースに合わせて私の答えを更新します。私はCRMのMicrosoftのレポートはあなたが尋ねているものに似ていると思う – niktrs
素晴らしい。私はそれをやろうとします。また、ストアドプロシージャはすべての列を返すことができます。その列はNULLの束になります。しかし、私は式を書くことによってパラメータに応じてSSRSの列を隠すことができます。それがより良いアプローチだろうと思いますか?特にパフォーマンスの面で。 ありがとう – Oleg