请教大牛 sql数据源进行多级维筛选后 传参处理

5232
4

小萌神大白兔 初学数据Lv2

发表于2018-8-22 15:25

悬赏30

已解决

楼主
有这样一个需求  有一个机构多级维现已实现多个机构勾选,想要将多选的机构传参到 sql数据源中将如何处理,勾选结果为 '小一支行|大道支行|小城支行|山东分行' 为例,将这几个机构一并传参到sql数据源中并且 查询出结果。

最近看过此主题的会员

vaoievnbwe

chestnut

huxh

esen_4TUELCHD9M

esen_4TU4L1BV1N

zhouxm

esen_562OEVOBL1

brave0520

esen_5DMJCHUFN3

esen_5CJVOYA87N

esen_5BSNPWNW43

naqinga

v笑向前走

esen_4XJGK5ZGMF

@bert

pandabuxizao

最佳答案

vip

发表于2018-8-22 15:25

只看该作者

取消 关注该作者的回复

为什么要用sql数据源做表呢?
sql数据源做表的话,参数过滤编写太麻烦了。感觉还是直接制作分析表比较方便快捷呢~~

sql数据源传参的用法,比较复杂,具体情况具体分析。
你去社区知识库里面搜一下"sql数据源",有详细的应用场景,拿走不谢~~~
4个回答

只看楼主

vip 小试身手Lv3

发表于2018-8-22 15:25

只看该作者

取消 关注该作者的回复

沙发

为什么要用sql数据源做表呢?
sql数据源做表的话,参数过滤编写太麻烦了。感觉还是直接制作分析表比较方便快捷呢~~

sql数据源传参的用法,比较复杂,具体情况具体分析。
你去社区知识库里面搜一下"sql数据源",有详细的应用场景,拿走不谢~~~

小萌神大白兔 初学数据Lv2

发表于2018-8-22 18:36

只看该作者

取消 关注该作者的回复

板凳

vip 发表于 2018-8-22 15:33
为什么要用sql数据源做表呢?
sql数据源做表的话,参数过滤编写太麻烦了。感觉还是直接制作分析表比较方便 ...

通过搜索sql数据源常用写法已经解决  谢谢   哈哈哈  大神无处不在  同时自己也得善于思考

小萌神大白兔 初学数据Lv2

发表于2018-8-22 18:53

只看该作者

取消 关注该作者的回复

地板

当遇到一些不方便直接用BI主题表实现的分析需求时,通常会考虑用sql数据源来做表。以下简单总结了一些常用的sql数据源的写法,欢迎大家补充~
场景一、单级维,可多选,不做选择时缺省过滤
<#=if(@cs='','1=1','standard in ('+replaceregex(@cs,'\\|',',', true)+')') #>
注:因为“|”这个符号在代码里面是有特定含义的,所以需要用\\转译一下。

场景二、单级维或者枚举下拉时,多选过滤时生成的sql是 in (110000,120000) ,怎样转换成 in('110000','120000') ?
<#=if(@cs='','1=1',' xzqh in (\'' + replaceregex(@cs,"\\|",'\',\'') + '\')')#>
注:蓝色字体部分是拼接进去的字符串,由于嵌套使用单引号,所以内层的单引号前面加\转译一下。
场景三、多级维,可多选,分组节点以及叶子节点都允许选择,不做选择时缺省过滤
<#=if(@cs="","1=1","(" + ([] + @cs.value).select(true,
if(@.level=0, "xzqh like '" + left(@,2) + "%'", if(@.level=1, "xzqh like '" + left(@,4) + "%'", "xzqh='" + @ + "'"))
).join(" or ") + ")")#>



注:其中 .select 和 .join()均为数组常用写法,具体可参考wiki:
http://192.168.1.200/wiki/pages/viewpage.action?pageId=590506

场景四、通用维过滤,可多选,不做选择时缺省过滤
select sum(a.DXDBSL) as B1,a.WLCCID as A1,max(b.WLCCMC) as mc_A10
   from MQT_CW_GL_DXSLYJZ a
   ,MQT_DIM_WLCC b
   where (A.WLCCID=B.WLCCID(+)) and
   <#=if(@hhxx<>'', "(" +(@hhxx+"").split("\\|").select(true,"a.pp||'$'||a.dl||'$' ||a.xl like '"+@+"%'").join(" or ")+")","1=1") #>   
group by a.WLCCID

让更多需要了解sql数据源做表的人看到  肯定会用到

爱分析 初学数据Lv2

发表于2018-8-23 11:16

只看该作者

取消 关注该作者的回复

5#

小萌神大白兔 发表于 2018-8-22 18:53
当遇到一些不方便直接用BI主题表实现的分析需求时,通常会考虑用sql数据源来做表。以下简单总结了一些常用 ...

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

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

小时

全天响应

分钟

快速处理问题

工程师强势助力

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

400咨询:400-0011-866

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

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

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