如果在 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.
我的表情:
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.