簡體   English   中英

帶過濾器的MDX計算成員

[英]MDX Calculated member with filter

對MDX來說還很陌生,所以這可能是一個菜鳥問題。 但是還無法“翻譯”解決方案的任何答案!

我有一個度量,該度量對我的行數進行計數,稱為[度量]。[事實計數]

我還有一個名為[Document]的維度,其中有一個名為[Is Completed]的字段。

[文檔]。[已完成]可以具有兩個值之一:[是]或[否]。

[Document]維度確實還有其他幾個字段,例如[Document Type]

我想問一個問題,例如“我的不同文檔類型已經完成了多少百分比”。

我試過像這樣[完成計數]:

([Measures].[Fact Count],
[Document].[Is Completed].&[Yes])

然后像這樣使用它:

[Measures].[Completed Count]/[Measures].[Fact Count]*100

但是(當然)然后[完成計數]會取走我所有已完成的文檔,而不是僅取每個[Document Type]的文檔

希望這對某人有意義!

啊,找到解決方案了!

由於我的維度包含“是”或“否”值,因此我可以將它們分別轉換為1和0,並將它們作為[度量]添加到我的[度量]。[已完成的總和]。 顧名思義,我將求和。

那么計算很簡單:

[Measures].[Is Completed Sum]/
[Measures].[Fact Count]*100

或者如果我確保不除以0:

iif(
[Measures].[Fact Count] = 0,
null,
[Measures].[Is Completed Sum]/
[Measures].[Fact Count]*100
)

我仍然會在維度中保留“是/否”,因為在需要時可以將它們用作過濾器。

whytheq,非常感謝您的所有意見! 這非常有價值,並使我的大腦朝着正確的方向旋轉:-)

也許是另一端需要更加明確?

(
 ([Measures].[Fact Count],
  [Document].[Is Completed].&[Yes])
/
 ([Measures].[Fact Count],
  [Document].[Is Completed].[All])
)
*100

如果您具有“已完成”的屬性層次結構,請嘗試使用該屬性層次結構-可能像這樣...

(
 ([Measures].[Fact Count],
  [Is Completed].[Is Completed].[Is Completed].&[Yes])
/
 ([Measures].[Fact Count],
  [Is Completed].[Is Completed].[All])
)
*100

或這個

(
 ([Measures].[Fact Count],
  [Is Completed].[Is Completed].&[Yes])
/
 ([Measures].[Fact Count],
  [Is Completed].[All])
)
*100

如果將度量值更改為以下值,然后將是| 否,您不會開始獲得正確的結果嗎?

(
 ([Measures].[Fact Count])
/
 ([Measures].[Fact Count],
  [Document].[Is Completed].[All])
)
*100

也許范圍 (從whytheq那里竊取了代碼,我認為他得到了正確的答案)

SCOPE ([Document].[Is Completed].&[Yes])
THIS = (
 ([Measures].[Fact Count],
  [Document].[Is Completed].&[Yes])
/
 ([Measures].[Fact Count],
  [Document].[Is Completed].[All])
)
*100
END SCOPE

關於

由於我的維度包含“是”或“否”值,因此我可以將它們分別轉換為1和0。您可以改進模型並為維度添加新的列值。

並實際上僅通過<Member>獲得1和0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM