1

私は新しいDAXユーザーであり、言語が計算されたメジャーの関係伝播をどのように処理するかを明らかに誤解しています.誰かが私が単純な概念だと思っていたことを助けてくれることを願っています. 簡単な例:

3 テーブル:
1) Concert_Event
2) Concert_Event_Details
3) City_Budget (例として完全に無関係に作成)

Concert Event はConcert_Event_Details に対して(1:M)の関係を持ち、City_Budget とテーブル 1、2 の間には関係がありません。

表 1、2 はEvent_IDにリンクしています。ここで、Concert_Event_Details のフィールド "TicketSales" を合計したいとしますが、eventID 2 は除外します。単純な DAX の考え方では、次のような数式を記述します。

- TotTicketSales:= CALCULATE( SUM(TicketSales), FILTER(Concert_Event_Details, Concert_Event_Details[EventID] <> 2) )

OK、次の注意点は、約 50 のメジャーを書く必要があるとしましょう。それらはすべて常に eventID 2 を除外します。そのため、Concert_Event をロードするときに単に eventID 2 を除外することで時間を節約できると思います。ここで質問です。Concert_Event_Details 内に計算されたメジャーを記述した場合、DAX に FILTER 行を追加して、次のように言うことが期待されます。

FILTER(コンサート_イベント_詳細, コンサート_イベント_詳細[イベント_ID] = RELATED(コンサート_イベント[イベント_ID)

合計に event_id 2 を含めていないことを確認してください。これは、(1:M) 関係の多側で書いているからだと思います。私のテストでは、これは正しいです。関係の「1」側にリンクするには、その特定のフィルター行が必要です。

最後に、ここで私は DAX エンジンの動作を理解していません。この測定値を "1" 側 (Concert_Event) に記述した場合、Event_ID の関係は Many 側に伝播するはずであり、EventID に具体的にリンクするための追加の FILTER コードは必要ないと思います。私のテストを通して、私はそうしますが、その理由がわかりません。さらに、まったく関係のないテーブル(City_Budget)に同じコードを書いても、同じANSWERにたどり着くことができます。表 3 と (1,2) の間には何の関係もありません。何が起こっているのか、モデルと伝播の関係について完全に見逃しているのはなぜですか?

事前に回答していただきありがとうございます。なぜこれが私をつまずかせているのかわかりません。不要なリンク コードを継続的に使用して、記述したすべての計算メジャーで既に機能していると思われる関係を明示的に呼び出すことはしたくありません。

乾杯!

4

2 に答える 2

1

計算されたメジャーの場所は、それが提供する答えには影響しません。好きなテーブルに計算を入れることができます。純粋に整理目的で使用するフィールドを含む同じテーブルに計算を配置します。

編集: Technet で同じ質問をして、そこでも回答を得たようです。

于 2013-09-10T21:43:50.987 に答える