[ABI 5.2] 如何使不在过滤条件内的数值显示为0

6356
5

拟好 初学数据Lv2

发表于2022-5-25 17:22

悬赏1

已解决

楼主
使用浮动维分析表,当前需求是通过在过滤条件内对时间进行判断从而计算数据,但是不在过滤条件内的单元格会直接被过滤掉不显示,有没有办法使得不在过滤条件内的单元格显示为0,而不是直接过滤掉呢。
目前展示:


想要效果:



目前过滤条件:
  1. COURSE.create_time >= @Date_s & COURSE.create_time < @Date_e
复制代码


我的想法是能否通过if来进行判断,如果在时间内则表示,不在时间内则为0,但没写出来


最近看过此主题的会员

esen_5F7WOBYEX9

木兮

灰龙

naqinga

esen_58C5GU87Y7

王硕

秋tian

九天

Jane918

颜值区总司令

beemo

两包辣条约吗

hhejianping

Bryce

最佳答案
那么可以不用过滤条件,只用显式表达式就可以实现
if(self<@qs or self>@jz,0,self)
您参考一下例子
5个回答

只看楼主

两包辣条约吗 数据达人Lv4

发表于2022-5-25 17:22

只看该作者

取消 关注该作者的回复

沙发

那么可以不用过滤条件,只用显式表达式就可以实现
if(self<@qs or self>@jz,0,self)
您参考一下例子

拟好 初学数据Lv2

发表于2022-5-25 18:00

只看该作者

取消 关注该作者的回复

板凳

两包辣条约吗 发表于 2022-5-25 17:46
那么可以不用过滤条件,只用显式表达式就可以实现
if(self@jz,0,self)
您参考一下例子

好的谢谢! 我试试

拟好 初学数据Lv2

发表于2022-5-26 10:20

只看该作者

取消 关注该作者的回复

地板

两包辣条约吗 发表于 2022-5-25 17:46
那么可以不用过滤条件,只用显式表达式就可以实现
if(self@jz,0,self)
您参考一下例子

您好,我试了一下发现,这个方法如果对静态值是有效的,但是我单元格的值是计算的某个记录的统计量,他的表达式是
  1. if(COURSE.gmt_create >= (@date_s) and COURSE.gmt_create <= (@date_e), _n(COURSE.course_id), 0)
复制代码
这语句需要实现的功能是,如果课程时间在统计范围内,则记录该课程,否则不记录
需要判断的单元格是根据首个单元格进行浮动的,目前效果是全为0,但是根据数据库查询不为0。




检查了一下表格自动生成的sql发现有点问题。
  1. select * from ( select if((NULL >= str_to_date('20200901 00:00:00','%Y%m%d %H:%i:%s')) AND (NULL < str_to_date('20220526 00:00:00','%Y%m%d %H:%i:%s')),count(a.course_id),0) as B2,a.college_name as A2
  2. from course a
  3. where (a.faculty_name IS NOT NULL)
  4. group by a.college_name ) as temp_ limit 1000
复制代码
上边判断时间条件的主体变成了null,将null改为gmt_create(创建时间字段)并拿去数据库查询发现还是全为0,我认为可能是我的if语句写错了,您可以帮忙指导指导吗?



两包辣条约吗 数据达人Lv4

发表于2022-5-26 10:39

只看该作者

取消 关注该作者的回复

5#

本帖最后由 两包辣条约吗 于 2022-5-26 10:43 编辑

拟好 发表于 2022-5-26 10:20
您好,我试了一下发现,这个方法如果对静态值是有效的,但是我单元格的值是计算的某个记录的统计量,他的 ...

感觉您把表达式和显示表达式弄混了,楼上发的例子里的表达式是写在显示表达式里的,只对计算出来的结果值的显示进行处理,不改变计算出来的结果,也不经过sql,不会改变您的sql啊,您是不是写在表格的表达式里了

拟好 初学数据Lv2

发表于2022-5-26 10:54

只看该作者

取消 关注该作者的回复

6#

两包辣条约吗 发表于 2022-5-26 10:39
感觉您把表达式和显示表达式弄混了,楼上发的例子里的表达式是写在显示表达式里的,只对计算出来的结果值 ...

噢噢这样! 好的明白,我再试试

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

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

小时

全天响应

分钟

快速处理问题

工程师强势助力

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

400咨询:400-0011-866

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

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

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