2011-06-29 7 views
1

MS SQL Server 2008でこのprocを作成し、レポート(CrystalまたはSQL Serverレポート)をバインドしようとすると、レポートからパラメータを取得できません。私は何の誤りもありません。私はちょうどそれから任意のデータを取得するために、その下にprocの名前と列を参照してください。助けてくださいテーブルSQLクエリのWHERE部分をバインドできません

CREATE TABLE [dbo].[Consumer_Premium](
    [Address] [nvarchar](255) NULL, 
    [Male] [bit] NULL, 
    [Female] [bit] NULL) 

create proc getdata 
@where as nvarchar (max) 
as 
declare @sql as varchar(max) 
set @sql='select cp.address, 
(case when cp.male =1 then ''Male'' 
     when cp.female =1 then ''Female'' 
     else null end) AS "Gender" 
from consumer_premium cp where '+ @where 
exec(@sql); 

@Where例の実行

getdata 'male=1' 

を助けてください。

+0

の可能重複[SQLクエリの問題の報告](のhttp:/ /stackoverflow.com/questions/6520506/sql-query-problem-when-reporting) – MatBailie

+0

構文エラー: "u"を意味のあるものに変換できません –

答えて

1

SSRS 2008を使用している場合に試すことができる1つの方法があります。以下の例は、質問で提供されたデータに基づいてSSRS 2008を使用して作成されました。

  1. dbo.Consumer_Premiumという名前のテーブルとSQLスクリプト]セクションの下で提供されたスクリプトを使用してdbo.GetDataという名前のストアドプロシージャを作成します。スクリーンショット#に示すように、テーブルにデータを入力します。

  2. BindWhere.rdlという名前のSSRSレポートをスクリーンショット#に作成します。スクリーンショットに示すよう

  3. は設定でGenderという名前のレポートパラメータを作成します。# - #。

  4. 設定スクリーンショットに示すように、レポートデータソース# - #。

  5. スクリーンショット#は男性を評価するためのパラメータGenderセットでデフォルトのレポートの実行を示しています。パラメータGender値が女性に変更されたときに

  6. スクリーンショット#は、デフォルトのレポートの実行を示しています。データを更新するには、[レポートの表示]ボタンをクリックする必要があります。

希望します。

SQLスクリプト:

CREATE TABLE [dbo].[Consumer_Premium](
    [Address] [nvarchar](255) NULL, 
    [Male] [bit] NULL, 
    [Female] [bit] NULL 
) ON [PRIMARY] 
GO 

CREATE PROCEDURE getdata 
(
    @where AS NVARCHAR(MAX) 
) 
AS 
    DECLARE @sql AS VARCHAR(MAX) 
    SET @sql='select cp.address, 
    (case when cp.male =1 then ''Male'' 
      when cp.female =1 then ''Female'' 
      else null end) AS "Gender" 
    from consumer_premium cp where '+ @where 
    EXEC(@sql); 
GO 

スクリーンショット#1:

1

スクリーンショット#2:

2

スクリーン#3:

3

スクリーン#4:

4

スクリーン#5:

5

スクリーン#6:

6

スクリーン#7:

7

スクリーン#8:

8

スクリーンショット#9:

9

スクリーンショット#10:

10

関連する問題