1

私は MDX の初心者で、自分の次元の問題を解決しようとして長い間悩んでいます。おそらく、誰かがそれをよりよく理解し、解決策を見つけるのを手伝ってくれるでしょう。

コンテキスト

これが私の組織の一部の定義です(私はそれを単純化します)

<Dimension type="StandardDimension" visible="true" highCardinality="false" name="Organization" caption="organization hierarchy" description="organization hierarchy of the user">
  <Hierarchy visible="true" hasAll="true" primaryKey="organizationid">
    <Table name="organization">
    </Table>
    <Level name="Company" visible="true" column="institution" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="IfBlankName">
    </Level>
    <Level name="Division" visible="true" column="site" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="IfBlankName">
    </Level>
    <Level name="Department" visible="true" column="department" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="IfBlankName">
    </Level>
  </Hierarchy>
</Dimension>

各ユーザーは組織にリンクされています。たとえば、この表を見てください。

    組織ID、会社、部門、部門
    1、Fruit&Co、ジュース、製造
    2、Fruit&Co、ジュース、マーケティング
    3、Fruit&Co、ケーキ、製造
    4、Fruit&Co、ケーキ、マーケティング
    5, ChocoLtd, ドリンク, 生産

各機関には独自の組織があり、サンプルの 3 よりも多くのレベルがあります。

問題

時には特定のレベルでの集計を使用して、さまざまなことを要求したいので、DESCENDANTS 関数を使用して MDX 要求を動的に作成します。

例えば

    選択する
      [時間].[2013] 列で、
      DESCENDANTS(組織.[Fruit&Co],[部門]) ON ROWS
    FROM [ワーキング]
    WHERE (メジャー.[日数])

ここで問題を開始します。結果には2行ではなく4行が表示されます

    Production, 120 // 実際には、ジュースとケーキ部門の nb 日間の合計
    マーケティング、30 // 2 つの部門の合計
    Production, 120 // 再び、同じ最初の行 ???
    マーケティング、30 // 同じ 2 行目

unique Member = "true" を uniqueMembers="false" に変更すると、

    Production, 100 // ジュースの結果
    マーケティング、25
    生産、20 //ケーキの結果
    マーケティング、5

私が選択した会社の集計のみを、同じレベルの名前のグループ化で、独立して彼女の両親にする方法は?

    生産、120
    マーケティング、30

備考:ペンタホモンドリアンを使用しています。DISTINC(DESCENDANTS(...)) を使用しようとしましたが、変更はありません (レベルメンバーごとに異なる組織 ID があるためだと思います)。

誰かが私を助けることができますか?? どうもありがとう !

4

0 に答える 0