2016-08-04 89 views
0

我有一個Qlikview表達式,我希望它不受任何選擇影響,除了兩個特定字段:Year & MonthQlikview表達式不受選擇影響除兩個特定字段

我的表達是:

Sum(Aggr(IF(Duration = 0.5 , 0.5, 
IF(DayName = 'Sat',0, 
IF(DayName = 'Sun',0, 
RangeSum(
Count({<Key = {"=Len(Trim([Date From])) > 0"}>}DISTINCT Name), 
Avg({<Key = {"=Len(Trim([Date From])) = 0"}>}0))))), Name, ADate)) 

我知道你可以使用類似; {1<Year = $:: Year>} & {1<Month = $:: Month>}做到這一點,但我不能完全得到它的權利。

回答

1

有做到這一點的幾種方式,但如果你確定你想表達只考慮你提到的兩個領域,我想先從總集合中的所有數據,並過濾出你想要的那些。

你基本上在那裏,取決於你想要限制的表達方式,你可以使用{1<Year = $:: Year>}{1<Month = $:: Month>},就像你在任何想要限制的地方所說的那樣。所述1集標識符將與總集應用中的所有數據,然後是組修飾符,YearMonth將基於在由$集標識符所指定的默認狀態選擇設定的啓動。

所以這樣的事情應該工作,我認爲:

Sum({1<Year=$::Year, Month=$::Month>} 
    Aggr(
     IF(Duration = 0.5 , 0.5, 
      IF(DayName = 'Sat', 0, 
       IF(DayName = 'Sun', 0, 
        RangeSum({ 
         Count({<Key = {"=Len(Trim([Date From])) > 0"}>} DISTINCT Name), 
         Avg({<Key = {"=Len(Trim([Date From])) = 0"}>} 0) 
        ) 
       ) 
      ) 
     ), 
    Name, ADate) 
) 

您可能需要添加到您的countavg表現爲好。

我感到困惑這個表達式:Avg({<Key = {"=Len(Trim([Date From])) = 0"}>} 0)。它是平均值0.是這樣嗎?

+0

在一些語法錯誤的地方 – Matt