sql数据源维表过滤时如何显示全部

34021
38

伶俐 数据达人Lv4

发表于2018-12-13 15:07

悬赏1

已解决

楼主
大神们,请教一个问题,bi表用了sq数据源,维表过滤的时候 (比如部门),用了where 字段='<#=@部门参数#>',这样计算结果只有在选择部门时展示某一部门的数据,有没有办法展示全部的数据(在不选择部门‘’的时候,目前不选择部门,展示的是空)

最近看过此主题的会员

esen_551EV9Y3NG

esen_5ID1Y27813

石长歌

tanxzh

esen_4XL2IVJCG8

林檬

最佳答案
伶俐 发表于 2018-12-14 09:50
不知道是不是我改的不会,报错了,测试不通过,计算也报错
  1. <#=if(@bm="","1=1","PD.DEPT_NO like '"+@bm+"%'")#>
复制代码

38个回答

只看楼主

巫浅浅 数据达人Lv4

发表于2018-12-13 15:11

只看该作者

取消 关注该作者的回复

沙发

用if进行判断
当参数不选择任何数据,查询结果为全部时:

[size=13.3333px]写法:判断结果为"1=1" 举例:<#=if(@qj='','1=1','REGION_ID='+@qj)#>

[size=13.3333px]这个帖子里有sql数据源的详细介绍 可以下载看看 http://bbs.esensoft.com/thread-128857-1-1.html


伶俐 数据达人Lv4

发表于2018-12-13 15:17

只看该作者

取消 关注该作者的回复

板凳

巫浅浅 发表于 2018-12-13 15:11
用if进行判断
当参数不选择任何数据,查询结果为全部时:
写法:判断结果为"1=1" 举例:

嗯嗯,好哒,我试一下,谢谢

巫浅浅 数据达人Lv4

发表于2018-12-13 15:21

只看该作者

取消 关注该作者的回复

地板

本帖最后由 巫浅浅 于 2018-12-13 15:25 编辑

伶俐 发表于 2018-12-13 15:17
嗯嗯,好哒,我试一下,谢谢

不客气啦,关下帖子哟

伶俐 数据达人Lv4

发表于2018-12-13 15:29

只看该作者

取消 关注该作者的回复

5#

巫浅浅 发表于 2018-12-13 15:11
用if进行判断
当参数不选择任何数据,查询结果为全部时:
写法:判断结果为"1=1" 举例:

可以帮我看一下,这个在数据源里面这样写是不是有误,因为我用了if 出来的数据都是空的  sql数据源的where 条件里面,而且我的部门默认编码是0 ,写了if@bm='0'之后,就报错了  ,我写的是:   where  PD.DEPT_NO='<#=if@bm='',1=1,@bm#>'

巫浅浅 数据达人Lv4

发表于2018-12-13 15:37

只看该作者

取消 关注该作者的回复

6#

伶俐 发表于 2018-12-13 15:29
可以帮我看一下,这个在数据源里面这样写是不是有误,因为我用了if 出来的数据都是空的  sql数据源的wher ...

你说的报错是 测试sql 不通过是把,如果sql数据源中有参数,测试sql的时候没法获取到参数,那它肯定要报错啦,这种情况下 可以直接保存了用就可以了

伶俐 数据达人Lv4

发表于2018-12-13 16:42

只看该作者

取消 关注该作者的回复

7#

巫浅浅 发表于 2018-12-13 15:37
你说的报错是 测试sql 不通过是把,如果sql数据源中有参数,测试sql的时候没法获取到参数,那它肯定要报 ...

大神,我目前是这样写的  where PD.DEPT_NO='<#=IF(@bm="","1=1",@bm)#>'  ,结果我选择部门的时候,能显示部门的对应数据 ,但是 什么都选的时候,没有任何数据,我看了一下详细信息,里面展示的是  PD.DEPT_NO='',   你看是不是我的sql 数据源里面的where条件写错了

巫浅浅 数据达人Lv4

发表于2018-12-13 16:44

只看该作者

取消 关注该作者的回复

8#

伶俐 发表于 2018-12-13 16:42
大神,我目前是这样写的  where PD.DEPT_NO=''  ,结果我选择部门的时候,能显示部门的对应数据 ,但是  ...

什么都选的时候,没有任何数据?? 啥意思 是不是打错字了

伶俐 数据达人Lv4

发表于2018-12-13 17:00

只看该作者

取消 关注该作者的回复

9#

巫浅浅 发表于 2018-12-13 15:37
你说的报错是 测试sql 不通过是把,如果sql数据源中有参数,测试sql的时候没法获取到参数,那它肯定要报 ...

我在后台数据库里面当PD.DEPT_NO <> ''    或者  PD.DEPT_NO IS NOT NULL  可以展示全部部门的值,不知道可不可以在where 里面写 为空的时候 (输出IS NOT NULL ) 我试了好多在<##>里面写都不太对

伶俐 数据达人Lv4

发表于2018-12-13 17:01

只看该作者

取消 关注该作者的回复

10#

巫浅浅 发表于 2018-12-13 16:44
什么都选的时候,没有任何数据?? 啥意思 是不是打错字了

是什么都不选,不好意思打错了

缱绻 数据领袖Lv6

发表于2018-12-13 17:18

只看该作者

取消 关注该作者的回复

11#

这个帖子上的文档有看吗?http://bbs.esensoft.com/thread-128857-1-1.html
维表类型有3种单级维、多级维、通用维,对每一种维表的过滤写法都是不一样的,其中还包含了多选的情况。
这种<#=if(@qj='','1=1','REGION_ID='+@qj)#>只是单级维或层级维单选的情况,你现在是哪种场景的过滤呢

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

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

小时

全天响应

分钟

快速处理问题

工程师强势助力

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

400咨询:400-0011-866

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

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

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