6

「RELATED」関数を使用して、BISMモデルの別のテーブルからフィールドを取得しようとしています。Peopleテーブルと関係のあるテーブルが多数あるため、1つの関係のみがアクティブになり、残りは非アクティブになります。この場合、関係は非アクティブであり、私が理解しているように、「USERELATIONSHIP」関数を使用して、使用する関係を指定します。私がここで見つけたものに基づいて:http://connect.microsoft.com/SQLServer/feedback/details/730493/powerpivot-dax-method-related-does-not-work-if-key-is-inactive 私はできると思ったこれを行う:

=CALCULATE(RELATED(People[FullName]]),USERELATIONSHIP(Def[OwnerID],People[PersonID]))

しかし、エラーが発生します:

列'People[FullName]'は存在しないか、現在のコンテキストで使用可能なテーブルとの関係がありません。

4

1 に答える 1

4

これは、AdventureWorksDWデータセットを使用した例です...

EVALUATE(
    CALCULATETABLE(
        ADDCOLUMNS(
            'Internet Sales'
            ,"Order Calendar Year"
                ,CALCULATE(VALUES('Date'[Calendar Year]))
            ,"Ship Calendar Year"
                ,CALCULATE(
                    VALUES('Date'[Calendar Year])
                    ,FILTER(
                         'Date'
                        ,'Date'[DateKey] = 'Internet Sales'[ShipDateKey]
                    )
                )
            ,"Due Calendar Year"
                ,CALCULATE(
                     VALUES('Date'[Calendar Year])
                    ,FILTER(
                         'Date'
                        ,'Date'[DateKey] = 'Internet Sales'[DueDateKey]
                    )
                )
        )
    )
)

このコードは、インターネット販売テーブルの各日付について、日付テーブルからインターネット販売テーブルに暦年を取得します。

  • 注文日(アクティブな関係)
  • 期日(非アクティブな関係)
  • 出荷日(非アクティブな関係)

編集:最初の応答を修正しました(上記)...このシナリオでUSERRELATIONSHIPが機能しない理由についての良い記事があります:linky *

以下のLOOKUPVALUEも同様に機能します。

=LOOKUPVALUE(
     People[FullName]
    ,People[PersonID]
    ,FollowUps[OwnerID]
)
于 2013-01-17T12:41:29.267 に答える