2017-07-17 71 views
0

我試圖在Microsoftrategy中複製Qlikview Aggr函數。我有下面的Qlikview代碼,我認爲是等效的sql翻譯。這些字段將是我的數據集中的屬性。這個想法是,如果您從儀表板中的篩選器中選擇一個值,它會過濾度量標準中的「where」子句。有沒有辦法在微觀策略中爲參數建立參數?或者是否有人建議如何構建等效度量標準?我真的在我的子查詢部分撓頭,我不知道是否可以將其作爲一個事實構建,然後從中構建一個度量標準?Qlikview Microstrategy中的「Aggr」函數等效

Qlikview: 

Max({<Field1=>} Aggr(Sum({<Field2={'Value1'},Field3={'Value2'}, Field1=>} ThingCount), Field1)) 






SQL Equivalent: 

select 
Max(Value) 
    from(
    select Sum(case when Field2 in ('Value1') 
          and Field3 in ('Value2') 
          and Field1 is not NULL 
        then ThingCount end) as Value, 
    Field1 
    from Table 
    where Field1 = "FilterValue" 
    group by Field1 
    )a 

回答

0

要獲得你想你應該在MSTR建立兩個指標的SQL:

  • 一個計算校驗和,用的情況下(實際上我會把情況下,在事實的定義) 。

  • 第二個度量(級別度量)將計算MAX忽略Field1屬性。

where條件只是MSTR文檔/儀表板中的選擇器。

+0

謝謝你回到我身邊。事實和你描述的第一個指標是多值的。它會返回兩個字段:Value和field1,這兩個字段會有多個值。這是可能的微觀策略? – ndderwerdo

+0

我所描述的將會返回(或多或少)你所要求的查詢。在MicroStrategy中,度量標準是一個基於事實(它應該是事實表中的數字列)的計算,Field1將是MicroStrategy中的一個屬性。我從這裏幫不了你,你應該找到一個能夠幫助你理解更好的MSTR或者告訴你如何解決這個問題的人 – mucio