0

計算されたメンバーを使用して、パラメーターを使用してクエリを作成しようとしています。

「ハードコードされた」司法カウントの計算されたメンバーを作成しましたが、作成したパラメーターは各グループの合計に影響しません。

ただし、作業パラメーターを使用して、それぞれの合計カウントをリストする必要があります。選択した司法タイプに値がない場合は、ゼロカウントが表示されます。

簡単な方法があると確信していますが、MDX/SSRSはかなり新しいです。どんな助けでも大歓迎です!

クエリは次のとおりです。

WITH 

Member  [Measures].[Jud] as
        (
        [Dim Foreclosure Loan].[Judicial Flag].[1],
        [Dim Foreclosure Loan].[FCL Stage].&[Sale Held],
        [Measures].[Loan Count]
        )
Member  [Measures].[Non-Jud] as
        (
        [Dim Foreclosure Loan].[Judicial Flag].[0],
        [Dim Foreclosure Loan].[FCL Stage].&[Sale Held],
        [Measures].[Loan Count]
        )
Member  [Measures].[Total] as
        (
        [Dim Foreclosure Loan].[Judicial Flag],
        [Dim Foreclosure Loan].[FCL Stage].&[Sale Held],
        [Measures].[Loan Count]
        )
--------------------------------    Query Begins    --------------------------------
SELECT NON EMPTY
        {
        ([Dim Date].[Calendar].[Day].Members)
        } ON ROWS,
        NON EMPTY 
        ({
        ([Measures].[Jud]),
        ([Measures].[Non-Jud]),
        ([Measures].[Total])
        }) ON COLUMNS
        FROM ( SELECT ( STRTOSET(@DimForeclosureLoanJudicialFlag, CONSTRAINED) ) ON COLUMNS
        FROM [Foreclosure])
        WHERE 
        (IIF( STRTOSET(@DimForeclosureLoanJudicialFlag, CONSTRAINED).Count = 1,
        STRTOSET(@DimForeclosureLoanJudicialFlag, CONSTRAINED),
        [Dim Foreclosure Loan].[Judicial Flag].currentmember)
        )CELL PROPERTIES VALUE

更新:提供されたiifステートメントについてサポートが必要です。以下のコメントを参照してください。

4

1 に答える 1

0

私はあなたが何を求めているのか100%明確ではありませんが、私がそれを言い換えるとしたら、これがあなたがやろうとしていることだと思います。列にJud、Non-Jud、Totalを表示したいと思います。このパラメータを使用して特定の司法旗を選択しようとしていると思います。明確ではないのは、メジャーで示すようにパラメーター値が1と2に制限されているのか、それとも1と2の子が存在する階層があるのか​​ということです。最初の階層が最も簡単なので、最初の値を想定します。説明すると、そこから行くことができます。

WHERE条項の内容を検討するには、司法旗1と2の対策を設定する必要があります。現在、それらはハードコーディングされており、SSASにWHERE句に含まれるものをすべて無視するように指示しています。IIFメジャー定義にステートメントを含めることにより、条件付きで使用する必要があります。SSASがクエリを最適に実行できるように、値をFalse条件として返す必要がNULLあります。次に、format_stringプロパティを使用して、の代わりにゼロを入力しますNULL(パフォーマンスのためにFalse条件で0を使用するよりも優れています)。ただし、NON EMPTY列のキーワードは、句に含まれていない司法フラグWHEREを削除するため、削除する必要があります。ジャッドまたは非ジャッドのいずれかの値を持つ日のみを表示するように、行に保持します。

これが、あなたがやろうとしていることの私の推測に基づいたあなたの質問の試みです:

WITH 
  MEMBER [Measures].[Jud] AS 
  iif(
        [Dim Foreclosure Loan].[Judicial Flag].CurrentMember is 
            [Dim Foreclosure Loan].[Judicial Flag].[1], 
            (
              [Dim Foreclosure Loan].[Judicial Flag].[1]
             ,[Dim Foreclosure Loan].[FCL Stage].&[Sale Held]
             ,[Measures].[Loan Count]
            ),
            NULL), format_string="#;#;0;0"
  MEMBER [Measures].[Non-Jud] AS 
  iif(
        [Dim Foreclosure Loan].[Judicial Flag].CurrentMember is 
            [Dim Foreclosure Loan].[Judicial Flag].[0], 
            (
              [Dim Foreclosure Loan].[Judicial Flag].[0]
             ,[Dim Foreclosure Loan].[FCL Stage].&[Sale Held]
             ,[Measures].[Loan Count]
            ),
            NULL), format_string="#;#;0;0" 
  MEMBER [Measures].[Total] AS 
    (
      [Dim Foreclosure Loan].[Judicial Flag]
     ,[Dim Foreclosure Loan].[FCL Stage].&[Sale Held]
     ,[Measures].[Loan Count]
    ) 
SELECT 
  NON EMPTY 
    {
      [Dim Date].[Calendar].[Day].MEMBERS
    } ON ROWS
 , 
    {
      [Measures].[Jud]
     ,[Measures].[Non-Jud]
     ,[Measures].[Total]
    } ON COLUMNS
FROM 
(
  SELECT 
    StrToSet
    (@DimForeclosureLoanJudicialFlag
     ,CONSTRAINED
    ) ON COLUMNS
  FROM [Foreclosure]
)
WHERE 
  IIF
  (
      StrToSet
      (@DimForeclosureLoanJudicialFlag
       ,CONSTRAINED
      ).Count
    = 1
   ,StrToSet
    (@DimForeclosureLoanJudicialFlag
     ,CONSTRAINED
    )
   ,[Dim Foreclosure Loan].[Judicial Flag].CurrentMember
  )
CELL PROPERTIES VALUE, FORMATTED_VALUE;
于 2012-05-28T21:38:03.603 に答える