SSASのメジャーグループ間に親子関係を実装する方法を理解するのに苦労しています。基本的に、標準のSQL結合を再作成して、子グループのキーを使用しながら親グループのメジャーを検索できるようにしています。
たとえば、次のディメンションがあるとします。
- 親
- 子(FK:ParentID)
- 時間
そして、私は次のメジャーグループを持っています
- ParentFact(キー:ParentID、TimeID-時間の経過とともに親に関連するメジャー)
- ChildFact(キー:ChildID、TimeID-時間の経過に伴う子に関連するメジャー)
ファクトテーブルの特定のディメンションは作成していません。
最後に、次のようなクエリを実行して、親テーブルのメジャーに結合された子テーブルのメジャーを一覧表示します。
SELECT
{
[ChildMeasure]
, [ParentMeasure]
} ON COLUMNS
, [Child].Children ON ROWS
FROM
[MyCube]
WHERE
[Time].[100]
このクエリを実行すると、子の行がTime ID 100の適切なメジャー値とともに正しく一覧表示されます。残念ながら、ParentMeasureはすべて同じであり、TimeID100のすべての親のこの値の集計であるように見えます。この列には、TimeID100での各子の関連付けられた親からの値が表示されます。
私はここで何が間違っているのですか?FactTableごとにFactDimensionsを作成し、どういうわけかそれらを関連付ける必要がありますか?データソースビューで親と子の関連付けを作成する必要がありますか?それは私が避けるべきだと思うスノーフレークスキーマになりますか?
ちなみに、私のChildFactテーブルには、実際にはメジャーの1つとしてParentIDが含まれています。これは、データソースのリレーショナルテーブルにあるためです(おそらく、DB開発者による以前の非正規化作業が原因です)。ファクトテーブルで実際にFKであるメジャーを削除する必要がありますか、それとも私がやろうとしていることに何らかの形で必要ですか?