我的表情:
IF(Min(MONTHYEAR)&gt; Min(MONTHYEAR2)和isnull(FIELD1),FIELD1B,if(Min(MONTHYEAR)&gt; Min(MONTHYEAR2)和len(FIELD1)&gt; 0,FIELD1))作为Value < / p>
我需要这个: 1.-if(Min(MONTHYEAR)&gt; Min(MONTHYEAR2)和isnull(FIELD1)输出FIELD1B 2.-if(Min(MONTHYEAR)&gt; Min(MONTHYEAR2)和isnotnull(FIELD1)输出FIELD1
我做错了什么?谢谢!
答案 0 :(得分: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
不确定'group by'如何处理空值或数据的样子,但是聚合或分组所有字段的理论都有。如果所有分组行中只有1个不同的值,则only()命令返回值,否则返回null。