-
-
拟好 初学数据Lv2
发表于2022-5-25 17:22
悬赏1
已解决
楼主
使用浮动维分析表,当前需求是通过在过滤条件内对时间进行判断从而计算数据,但是不在过滤条件内的单元格会直接被过滤掉不显示,有没有办法使得不在过滤条件内的单元格显示为0,而不是直接过滤掉呢。
目前展示:
想要效果:
目前过滤条件:
复制代码
我的想法是能否通过if来进行判断,如果在时间内则表示,不在时间内则为0,但没写出来
目前展示:

想要效果:

目前过滤条件:
- COURSE.create_time >= @Date_s & COURSE.create_time < @Date_e
我的想法是能否通过if来进行判断,如果在时间内则表示,不在时间内则为0,但没写出来
5个回答
那么可以不用过滤条件,只用显式表达式就可以实现
if(self<@qs or self>@jz,0,self)
您参考一下例子
两包辣条约吗 发表于 2022-5-25 17:46
那么可以不用过滤条件,只用显式表达式就可以实现
if(self@jz,0,self)
您参考一下例子
您好,我试了一下发现,这个方法如果对静态值是有效的,但是我单元格的值是计算的某个记录的统计量,他的表达式是
- if(COURSE.gmt_create >= (@date_s) and COURSE.gmt_create <= (@date_e), _n(COURSE.course_id), 0)
需要判断的单元格是根据首个单元格进行浮动的,目前效果是全为0,但是根据数据库查询不为0。

检查了一下表格自动生成的sql发现有点问题。
- 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
- from course a
- where (a.faculty_name IS NOT NULL)
- group by a.college_name ) as temp_ limit 1000
本帖最后由 两包辣条约吗 于 2022-5-26 10:43 编辑
拟好 发表于 2022-5-26 10:20
您好,我试了一下发现,这个方法如果对静态值是有效的,但是我单元格的值是计算的某个记录的统计量,他的 ...
感觉您把表达式和显示表达式弄混了,楼上发的例子里的表达式是写在显示表达式里的,只对计算出来的结果值的显示进行处理,不改变计算出来的结果,也不经过sql,不会改变您的sql啊,您是不是写在表格的表达式里了