2016-08-04 88 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