0

こんにちは、クエリメンバーをフィルター条件として配置しようとしています。実行しようとしているコードは次のとおりです。

Member [ThisMonth] as VBAMDX.Format(VBAMDX.Now(),"yyyyMM")

  SET [currentdays] AS filter([D Date].[DAY ID].Members,
 [D Date].[MONTH ID]=[ThisMonth])

しかし、クエリは条件を認識しませんでした

Member [ThisMonth] as VBAMDX.Format(VBAMDX.Now(),"yyyyMM")

      SET [currentdays] AS filter([D Date].[DAY ID].Members,
     [D Date].[MONTH ID].&[201309])

したがって、クエリは目的の結果を返します。これを行う動的な方法がもうないのではないかと思っています。

どうもありがとうございました!

4

1 に答える 1

1

VBAMDX.Format(VBAMDX.Now(),"yyyyMM")メンバー識別子ではなく文字列を返します。select 'myColumn' from myTableこれは、 column の内容ではなく、リテラル文字列 'myColumn' を返すSQL に似ていますmycolumn

関数を使用する場合はFormat、最初にメンバーの完全な一意の名前を作成し、次に次を使用して文字列をメンバー識別子に変換する必要がありますStrToMember

Member [ThisMonth] as '[D Date].[MONTH ID].&['
                      + VBAMDX.Format(VBAMDX.Now(),"yyyyMM")
                      + ']'    -- this returns a string!

   SET [currentdays] AS filter([D Date].[DAY ID].Members,
       StrToMember([ThisMonth]))

ところで、Filterここでは必要ありません。クエリが大幅に遅くなる可能性があります。

SET [currentdays] AS { StrToMember([ThisMonth]) }
于 2013-09-25T07:51:22.713 に答える