2016-01-18 36 views
0
表達

我的表達:如果在QlikView的

IF(最小值(MONTHYEAR)>敏(MONTHYEAR2)和ISNULL(FIELD1),FIELD1B,如果(最小(MONTHYEAR)>敏(MONTHYEAR2)和len(FIELD1)> 0,FIELD1))作爲價值

我需要這樣的: 1.-如果(最小(MONTHYEAR)>敏(MONTHYEAR2)和ISNULL(FIELD1)輸出FIELD1B 2.-如果(最小(MONTHYEAR)>敏( MONTHYEAR2)和isnotnull(FIELD1)輸出FIELD1

我做錯了什麼?謝謝!

回答

0

我想你會得到一個「通用腳本錯誤」。

如果您在腳本行中使用聚合,則需要聚合所有內容或將其添加爲腳本的分組字段。

IF(Min(MONTHYEAR) > Min(MONTHYEAR2) and isnull(FIELD1), FIELD1B, 
IF(Min(MONTHYEAR) > Min(MONTHYEAR2) and len(FIELD1)>0,FIELD1)) as Value 
from XYZ 
group by FIELD1,FIELD1B 

IF(MONTHYEAR > MONTHYEAR2 and isnull(FIELD1), FIELD1B, 
IF(MONTHYEAR > MONTHYEAR2 and len(FIELD1)>0,FIELD1)) as Value 
from XYZ 

IF(Min(MONTHYEAR) > Min(MONTHYEAR2) and isnull(only(FIELD1)), only(FIELD1B), 
IF(Min(MONTHYEAR) > Min(MONTHYEAR2) and len(only(FIELD1))>0, only(FIELD1))) as Value 
from XYZ 
group by 1 

不知道如何「組由」會處理空值或者你的數據看起來像,但是任何聚集或分組各個領域的理論成立。如果所有分組行中只有1個不同的值,那麼only()命令將返回值,否則返回null。