如果在 Qlikview 中表达

If expression in Qlikview

我的表情:

IF(Min(MONTHYEAR) > Min(MONTHYEAR2) and isnull(FIELD1),FIELD1B,if(Min(MONTHYEAR) > Min(MONTHYEAR2) and len(FIELD1)>0,FIELD1)) as Value

我需要这个: 1.-if(Min(MONTHYEAR) > Min(MONTHYEAR2) and isnull(FIELD1) 输出 FIELD1B 2.-if(Min(MONTHYEAR) > Min(MONTHYEAR2) and isnotnull(FIELD1) 输出 FIELD1

我做错了什么?谢谢!

我想你得到了 "Generic Script Error"。

如果您在脚本行中使用聚合,则需要聚合所有内容或将其添加为脚本分组依据的字段。

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

不确定 'group by' 将如何处理空值或您的数据是什么样子,但聚合或分组所有字段的理论成立。 only() 命令 returns 如果在所有分组的行中只有 1 个不同的值,则该值否则它 returns null.