找文章 / 找答案
精选问答 更多内容

[数据处理] 新建计算列中逻辑表达式不能嵌套?

最后的人青铜四 显示全部楼层 发表于 2022-2-16 09:27:43 |阅读模式 打印 上一主题 下一主题
1
已解决
报表中的新建计算列中if...else的逻辑表达式,不能使用嵌套吗?新建计算列和脚本好像是有很大的不同!

最佳答案

永洪vip
永洪tech-Bella 白银一 关注Ta

2022-02-16 09:27:44

请问下这样调整能否解决呢?这个问题已经进行了内部确认,在新的版本中对这种返回布尔类型的函数统一做了优化,目前924版本没有包含这个优化 当前924版本,可以考虑用sql计算列或者将原本的写法调整一下,会有语法检测错误,这个错误不影响执行。如果不介意这个语法检测,可以在924上这样用,如果介意就建议升级,比如941 ...
查看完整内容
回复

使用道具 举报

精彩评论11

永洪tech-Bella白银一 显示全部楼层 发表于 2022-2-16 09:27:44
永洪tech-Bella 发表于 2022-2-16 13:41
您试一下换成这种写法呢,是否就正常了

CASE

请问下这样调整能否解决呢?这个问题已经进行了内部确认,在新的版本中对这种返回布尔类型的函数统一做了优化,目前924版本没有包含这个优化
当前924版本,可以考虑用sql计算列或者将原本的写法调整一下,会有语法检测错误,这个错误不影响执行。如果不介意这个语法检测,可以在924上这样用,如果介意就建议升级,比如941
8.png
回复

使用道具 举报

永洪tech-Bella白银一 显示全部楼层 发表于 2022-2-16 09:43:09
是用的新语法吗?可以看下提示,如果是下图这样就是新语法另外可以说下想要实现的逻辑,咱们具体看看
24.png
回复

使用道具 举报

最后的人青铜四 显示全部楼层 发表于 2022-2-16 10:23:39
永洪tech-Bella 发表于 2022-2-16 09:43
是用的新语法吗?可以看下提示,如果是下图这样就是新语法另外可以说下想要实现的逻辑,咱们具体看看

...

if(isNull(col['QXTYPE'])==true and col['客户所属系统']==1) then 'a'
elseIf(isNull(col['QXTYPE'])==true and col['客户所属系统']==2) then 'b'
elseIf(col['QXTYPE']==14883 or col['QXTYPE']==14884) then 'c'
elseIf(col['QXTYPE']==14885) then 'd'
elseIf(col['QXTYPE']==14886) then 'e'
elseIf(col['QXTYPE']==14887) then 'f'
end

结果显示 true 标识符无效?
回复

使用道具 举报

最后的人青铜四 显示全部楼层 发表于 2022-2-16 10:24:28
yhdata_wLFD4qwF 发表于 2022-2-16 10:23
if(isNull(col['QXTYPE'])==true and col['客户所属系统']==1) then 'a'
elseIf(isNull(col['QXTYPE'])== ...

TRUE 标识符无效?
计算列问题(True标识符无效).jpg
回复

使用道具 举报

最后的人青铜四 显示全部楼层 发表于 2022-2-16 10:26:46
永洪tech-Bella 发表于 2022-2-16 09:43
是用的新语法吗?可以看下提示,如果是下图这样就是新语法另外可以说下想要实现的逻辑,咱们具体看看

...


这也有false 和 ture的表示啊
回复

使用道具 举报

永洪tech-Bella白银一 显示全部楼层 发表于 2022-2-16 10:44:46
yhdata_wLFD4qwF 发表于 2022-2-16 10:23
if(isNull(col['QXTYPE'])==true and col['客户所属系统']==1) then 'a'
elseIf(isNull(col['QXTYPE'])== ...

试下修改成这样呢,还是一样的报错吗?
if(isNull(col['QXTYPE']) and col['客户所属系统']==1) then 'a'
elseif(isNull(col['QXTYPE']) and col['客户所属系统']==2) then 'b'
elseif(col['QXTYPE']==14883 or col['QXTYPE']==14884) then 'c'
elseif(col['QXTYPE']==14885) then 'd'
elseif(col['QXTYPE']==14886) then 'e'
elseif(col['QXTYPE']==14887) then 'f'
end
回复

使用道具 举报

最后的人青铜四 显示全部楼层 发表于 2022-2-16 11:03:00
永洪tech-Bella 发表于 2022-2-16 10:44
试下修改成这样呢,还是一样的报错吗?
if(isNull(col['QXTYPE']) and col['客户所属系统']==1) then 'a' ...

这次报错是:无效的关系运算符
回复

使用道具 举报

永洪tech-Bella白银一 显示全部楼层 发表于 2022-2-16 11:07:21
yhdata_wLFD4qwF 发表于 2022-2-16 11:03
这次报错是:无效的关系运算符

and  修改为 &&
or  修改为 ||
然后再看看呢,另外咱们产品是什么版本,我这边对应版本再试试看呢
回复

使用道具 举报

最后的人青铜四 显示全部楼层 发表于 2022-2-16 11:22:18
永洪tech-Bella 发表于 2022-2-16 11:07
and  修改为 &&
or  修改为 ||
然后再看看呢,另外咱们产品是什么版本,我这边对应版本再试试看呢 ...

还是不行,我用的版本现在是Z的9.2.4
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部