簡體   English   中英

如何基於過濾后的維度創建計算的度量?

[英]How can I create a calculated measure based on a filtered dimension?

我是MDX的新手(目前正在訂購一本書),並且在創建計算量度時會遇到一些困難,該量度應基於設定的日期范圍(從我的時間維度),該屬性應由另一個維度的屬性過濾。 不幸的是,我似乎陷入了某種困境,看不到明確的出路。 我瀏覽了其他類似的問題,但沒有發現嘗試做同一件事的任何嘗試,只是單維度測量。

我有一個度量值組,其中包含物理度量SourceMeasure

我有一個名為[Time]的Time維度,我想使用它指定我的計算范圍。 這與我的“日期密鑰”與上述度量標准組有關。

我有一個名為[Dim Account]的Account維度,其中包含兩個日期屬性: [Account Start Date][Account End Date] 這通過帳戶ID與上述度量值組相關。

我想做的是,根據[Account Start Date][Account End Date][Time]維度過濾到一個范圍,然后為該帳戶指定的時間段返回[SourceMeasure]的總和。

顯然,這對每個帳戶來說都是不同的,因此,除[Dim Account]維(除非返回未使用的值,可能返回0或null)外,不應該進行匯總。

以下示例測試表達式,由於FORMAT_STRING語法錯誤(根據MDX Studio),當前無法使用。

WITH 
  MEMBER [Measures].[LifetimeMeasure] AS 
    Sum
    (
      {
          StrToMember
          (
        "[Time].[Date].&[" 
            + Format([Dim Account].[Account Start Date].CurrentMember.MemberValue,"yyyy-MM-ddThh:mm:ss")
            + "]"
          )
        : 
          StrToMember
          (
            "[Time].[Date].&[" 
            + Format([Dim Account].[Account End Date].CurrentMember.MemberValue,"yyyy-MM-ddThh:mm:ss")
            + "]"
          )
      }
     ,[Measures].[SourceMeasure]
    ) 
SELECT 
{
    [Measures].[LifetimeMeasure]
    ,[Measures].[SourceMeasure]
}
ON COLUMNS
,{
    [Dim Account].[Account].[AccountName]
} 
ON ROWS
FROM 
    [MyCube]

我嘗試了幾種不同的方法(SCOPE,過濾器,IIF),但是每次我似乎回到相同的症結時,如何根據[Dim Account]開始和結束的值過濾[Time]維度日期。

現在,可能是我完全誤解了維度之間的關系如何工作和/或SSAS如何計算計算的度量,但是我還沒有確定要尋找的水平,所以我我轉了一圈。

我正在嘗試做的事情是否可能,如果可能,是否有任何指向哪里的指針可以幫助我弄清楚我要去哪里錯了? 我是否應該改為使用“計算維數”?

我希望這一切都是有道理的,如果我錯過了任何事情或需要更多詳細信息,請告訴我。 我正在使用MDX Studio進行測試。

我通過向StrToMember函數添加CONSTRAINED標志來發現錯誤。

似乎我的[時間]維度的日期條目默認為時間“ 00:00:00”,而我的[假賬戶]維度的日期條目默認為“ 12:00:00”。 看來24小時制和12小時制之間不匹配。 由於該維度不是自然時間維度,因此[Dim Account]維度上的我的日期字段被標記為“常規”,而不是“日期”。 我認為這可能是導致不匹配的原因。

要暫時解決此問題,我從“格式”表達式中刪除了“時間”格式,並在搜索根本原因時將“ 00:00:00”附加到了字符串上。 解決后,我會更新。

更新:不匹配的原因不在維度上,而是在我在StrToMember表達式中使用的格式字符串中。 它沒有在MSDN上記錄,但是以下字符串輸出12小時時間格式:

"yyyy-mm-ddThh:mm:ss"

雖然此字符串輸出24小時時間格式:

"yyyy-mm-ddTHH:mm:ss"

暫無
暫無

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

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