2017-03-13 19 views
1

ストアキーをパラメータとして指定し、そのストアの売上のみのテーブルを作成するレポートを作成できます。SSRSのドリルスルーレポートと分析サービスをデータソースとして使用

"SELECT NON EMPTY { 
    [Measures].[Quantity] -- NOTE there are many more columns in reality 
    } ON COLUMNS, 
NON EMPTY { 
      (
       [Dim Date].[Calender].[Date].[2014-11-20]:[Dim Date].[Calender].[Date].[2014-11-30] 
      ) 
     } on rows 
FROM [cube] 
WHERE WHERE (STRTOMEMBER("[Dim Store2].[Store Key].&["+ @StoreKey + "]",CONSTRAINED)) 

が、これは、クエリの初めに=符号に関するエラーが(私が過多をテストしている私を提供しています。このために、私は「StoreKey」と呼ばれるパラメータとしてデータセットを提供してクエリを作成しましたこのようSTRTOMEMBERSTRTOSETなどが、どれもとしての異なる技術は、あなたが上で押したときにするように、このデータセットはDatesに続いWeeksにテーブル、Iグループを作成するために使用され、

)が動作するように見えますその日とストアのより詳細なデータを含むDrill Throughレポートが作成されます。

StoreKeyDateを使用して、ドリルスルーレポートを開くサブレポートを生成します。 StoreKeyパラメータに、メインレポートとサブレポートの同じ値を設定します。

私はActionのメインレポートで新しいレポートを作成するように設定しました。このレポートでは、Date変数と共にStoreKey変数を使用して、新しいレポートを生成する必要があります。

私はこのように設定された第1のデータを作成したい私の Subreport

SELECT 
    NON EMPTY { 
     [Measures].[Quantity] 
     , [Measures].[Total Price] 
     , [Measures].[Contribution Margin] 
     , [Measures].[Profit Margin] 
    } ON COLUMNS, 
    NON EMPTY { 
     (
      [Dim Time].[Open Hour Bucket].[Open Hour Bucket].ALLMEMBERS 
, [Dim Product2].[Product Group].[Product Group].ALLMEMBERS 
, [Dim Product2].[Summary].[Summary].ALLMEMBERS 
     ) 
    } ON ROWS 
     FROM [DSV_FactStoreSales 1] 
    WHERE (STRTOMEMBER("[Dim Store2].[Store Key].&["+ @StoreKey + "]",CONSTRAINED)) 

しかし、SSRSが、私はMDXまたはDAXを使用している場合、それは理解することができないことを私に伝えます。

これはあまりにも幅広い質問ではないことを願っていますが、これを数多く、何時間も働かせようとしましたので、うまくいけば正しい方向に押し込むことができます。それはとても混乱します。フォーラムのユーザーには、StrToMemberと時にはParameters!StoreKey.valueを使用する必要があることがあります。

すべてこのテストは、プレビューオプションを使用してVisual StudioのSSRSで行います。 Main Reportの変数StoreKeyは示されており、Generated drill through reportStoreKeyDateは内部です。私はDefault valuesavailable valuesなどで異なる値を使ってテストしました。今はNoneと設定しました。

EDIT:

SELECT 
NON EMPTY 
    { 
     [Measures].[Quantity] 
     ,[Measures].[Total Price] 
     ,[Measures].[Contribution Margin] 
     ,[Measures].[Profit Margin] 
    } ON COLUMNS, 
NON EMPTY 
    { 
     (
      [Dim Date].[Calender].[Date].[2014-11-20]:[Dim Date].[Calender].[Date].[2014-11-30]) 
      ,STRTOMEMBER("[Dim Store2].[Store Key].&[" + @StoreKey + "]") 
    } on rows 
from [DSV_FactStoreSales 1] 

私は管理のスタジオに、この文をコピーして変数式を置き換える場合は私の問題は、しかし、次のとおりです。

私は最終的に実際にこのように、「作品」のコードを得ましたハードコーディングされた値は、次のように:

STRTOMEMBER('[Dim Store2].[Store Key].&[1024]') 

私はディメンションの階層が一致しなければならないというエラーを取得し、そのため私は、コードを調整します

NON EMPTY { ([Dim Date].[Calender].[Date].[2014-11-20]:[Dim Date].[Calender].[Date].[2014-11-30] 
,STRTOMEMBER('[Dim Store2].[Store Key].&[1024]'))} on rows 

これはセットを返します。ただし、元の編集済みコードをSSRSに使用すると、クエリーデザイナーにエラーはありませんが、プロジェクトをプレビューするときに、一致しないハイライトのエラーが発生します。私は管理スタジオで(しかし、ハードコードされた値の代わりに変数を使用して)調整を行いますが、空のデータを呼び出すときにさまざまなエラーを出すSSRSで空のセットを取得します私のテーブルにセットしてください。

+0

大きな努力。 SSRSのクエリデザイナを使用してMDXを作成し、パラメータを作成しようとしましたか?私は通常MDXの編集を避けるためにそうしています。 – StevenWhite

答えて

2

データセットがSSRSパラメータにマップされていることを確認してください。 Query Command Text表現でも

enter image description here

=せずに、あなたのMDX式を使用し、それはSSRS式ではありません。

enter image description here

あなたのWHERE句にエラーがあります。

WHERE (STRTOMEMBER("[Dim Store2].[Store Key].&["[email protected]+"],CONSTRAINED)", 
STRTOMEMBER("[Dim Date].[Date Key].&["[email protected]+"],CONSTRAINED") 

これは次のとおりです。

WHERE (STRTOMEMBER("[Dim Store2].[Store Key].&["+ @StoreKey + "]",CONSTRAINED), 
STRTOMEMBER("[Dim Date].[Date Key].&[" + @Date + "]",CONSTRAINED)) 

UPDATE:クエリコマンドテキストウィンドウからMDX式を設定してみてください。意図したとおりに

enter image description here

これは私のために動作します。

enter image description here

あなたはそこからSSRSパラメータを設定することはできませんので、SS Management Studioを使用することは避けてください。

希望します。

+0

非常に良い答えです。私は以前のようにパラメータを設定しました。私もあなたのコードをコピーしました(そして、 '' 'などの代わりに' ''を使うなどいくつかのアプローチを試みましたが)うまくいきませんでした。私はグーグルがメンバーを不適切に参照したときに発生しますが、構文を完全に模倣するためにデザイナーで特定のストアキーをドラッグしましたが、私はまだエラーが発生します。値、デフォルト値1046、使用可能な値がありません – Cenderze

+0

@Cenderze、文字列を値の配列に連結できないため、複数の値を許可するようにパラメータを設定している場合は、パラメータを単一の値に設定して試してください複数の値のパラメータの場合は、STRTOSETを使用してSSRSのメンバの文字列を返す必要があります。どのようにパラメータを設定していますか? –

+0

返信ありがとうございます。私はCONSTRAINEDフラグに関して同じエラーを受けました。パラメータは、プロンプトから入力されます。あるいは、私はエラーのためにクエリを保存することができないので、私はデータセットビルダーを手に入れることができません。 – Cenderze

関連する問題