2017-01-31 3 views
0

パラメータ@SearchTypeに基づいて列の数を返すストアドプロシージャがあります。最初にパラメータ値が何であるかを確認し、SELECT文がデータを返します。パラメータに基づいてデータを返すプロシージャを使用してSSRSレポートを作成する方法

私の問題は、どのようにSSRSでこの手順を使用できますか?それは私にテーブルやマトリックスに追加することができるように私に任意の列をもたらすものではありません。

SSMSでは、手順は正常に動作します。 そのための回避策があります。

ありがとうございますが、データセットに手動でクエリ出力の列を定義する必要が

enter image description here

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 

答えて

1

列名と数値は静的ではないので、不要な列に対して空のデータを持つ列と同じ数の列を返すようにすることで、そのようにしてください。

パラメータの値ごとに、選択されたパラメータの値に応じて、必要な列とテーブルの可視性を含むテーブルを作成します(たとえば、パラメータに3つの値がある場合は3つのテーブルを作成する必要がありますが、時間)。

+0

ありがとうございました。列の数は、パラメータの値によって異なります。どこかの似たような例がありますか? ありがとう – Oleg

+0

あなたのケースに合わせて私の答えを更新します。私はCRMのMicrosoftのレポートはあなたが尋ねているものに似ていると思う – niktrs

+0

素晴らしい。私はそれをやろうとします。また、ストアドプロシージャはすべての列を返すことができます。その列はNULLの束になります。しかし、私は式を書くことによってパラメータに応じてSSRSの列を隠すことができます。それがより良いアプローチだろうと思いますか?特にパフォーマンスの面で。 ありがとう – Oleg

関連する問題