数组对象场景举例-过滤条件写法

1520
0

玳玳我 小试身手Lv3

发表于2022-5-29 22:24

楼主
本帖最后由 玳玳我 于 2022-5-30 20:27 编辑

在做数据分析时,经常会用到取数组对象做过滤的不同分析场景,下面将举例几个场景列举一下数组对象使用转化场景。


场景一:钻取传参时,例如需要传浮动表元对象GRID1.A5$,用做过滤条件的in 或者 not in使用。而通常GRID1.A5$这种表元数组对象取出来的格式是["1","2","3","4"]这种格式,没有办法直接写在过滤条件里拼接成正确sql,此时在设置钻取传参时可以用 A5$.select(true,@).join(",")表达式,先将GRID1.A2$这种表元的数组值先转成用逗号分割的普通字符串1,2,3,4,然后再使用主题表.字段  not in  (@sp+"").split(",")的方式拼接进过滤条件。



需求场景      
求出排名前五的商品大类的销售额明细,剩余商品归为其它类,并且点击左边商品大类或者其它,右边表格显示对应商品大类的小类销售额明细


表样设计:


热区式钻取传参设置:


钻取子表过滤条件设置:


最后效果:


场景二:维下拉多选过滤场景时,如果维表此时绑定了主题表对应的维度字段,我们可以使用dim函数,用dim(主题表字段)=@cs这种表达式,快速做单选和多选的过滤,那如果主题表维度字段没有绑定维表时,这时候想取维下拉参数值做多选过滤,改如何转化数组对象来做过滤?


转化方法:维下拉多选转换成数组:<#=(@wb+"").split("\|")#>
                 数组转换成字符串:<#=(@wb+"").split("\|").join(",")#>


需求场景1层级维做多选过滤写法      

方法1:QC_XL.XZQHDM in (@wb+"").split("\|")
方法2:<#=(@wb+"").split("\|").select(true,"QC_XL.XZQHDM= '"+@+"'").join(" or ")#>


表样设计:






最后效果:



需求场景2:通用维做多选过滤写法   


可以参考帖子:https://bbs.esensoft.com/thread-140752-1-1.html

最近看过此主题的会员

liwm

esen_4TUELCHD9M

cghb

@bert

esen_4XJGK5ZGMF

前进者

salmons001

0个回答

只看楼主

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号