永洪vip

此人很懒,什么也没有留下

发帖数 2288粉丝 3
你认识米米不铂金一
2024-7-8 11:26:04 发布在问答
【数据处理】 数据集传参时提示报告中有同名参数,应该怎么修改呐?
数据集传参时提示报告中有同名参数,应该怎么修改呐?

最佳答案

数据分析之星
找Job的老6 铂金二 关注Ta

2024-07-08 11:26:05

标签范围不对,空参时,你可以参照这个理解一下 where 1=1 And a=?{a} 空参为 where 1=1 and where 1=1 and a=?{a} 空参为 where 1=1 看着你上面都知道要用1=1避免第一个参数没有时不会没有问题,感觉应该会注意到这个才对的呀 像你上面的sql,参数标签都在decode函数里面,明显是会有问题的,全都空参就只剩一堆decode函数了,这样肯定报错 where 1=1 and ( decode(,'周',week) >= or decode(,'月'month)>= or decode(,' ...
查看完整内容
7119
32
精彩评论32
找Job的老6铂金二
发表于 2024-7-8 11:26:05 显示全部楼层
本帖最后由 yhbi老6了 于 2024-7-9 08:08 编辑

标签范围不对,空参时,你可以参照这个理解一下
where 1=1 And <a> a=?{a}</a>  空参为  where 1=1 and
where 1=1 <a> and a=?{a}</a>   空参为  where 1=1
看着你上面都知道要用1=1避免第一个参数没有时不会没有问题,感觉应该会注意到这个才对的呀
像你上面的sql,参数标签都在decode函数里面,明显是会有问题的,全都空参就只剩一堆decode函数了,这样肯定报错 where 1=1 and ( decode(,'周',week) >= or decode(,'月'month)>= or decode(,'年',year)>= )

要确保你每一个参数在单独空参时,都不会影响整个sql的语法正确性。
最后你想简单地校验是否可行,最好所有参数都不要设置默认值,让所有参数都空的情况下,sql依旧是没有语法错误的


回复

使用道具 2#

yhdata_lyaa
发表于 2024-7-8 11:46:21 显示全部楼层
检查下有没有同名参数呢,换一个名字
回复

使用道具 3#

你认识米米不铂金一
发表于 2024-7-8 13:17:31 显示全部楼层
yhdata_lyaa 发表于 2024-7-8 11:46
检查下有没有同名参数呢,换一个名字

举个例子,我现在组件参数叫年。我的数据集传参也写的<年>year=?{年}</年>。
保存时报有同名参数,然后我把数据集中参数改为年1.这样我怎么让数据集的参数与前台报表参数联动起来呐?
是脚本叫param['年']==param['年1']这样么?
回复

使用道具 4#

yhdata_lyaa
发表于 2024-7-8 13:42:44 显示全部楼层
yh-10044 发表于 2024-7-8 13:17
举个例子,我现在组件参数叫年。我的数据集传参也写的year=?{年}。
保存时报有同名参数,然后我把数据集 ...

当前是什么版本呢
回复

使用道具 5#

yhdata_lyaa
发表于 2024-7-8 13:44:31 显示全部楼层
yh-10044 发表于 2024-7-8 13:17
举个例子,我现在组件参数叫年。我的数据集传参也写的year=?{年}。
保存时报有同名参数,然后我把数据集 ...

param['年']=param['年1']
回复

使用道具 6#

你认识米米不铂金一
发表于 2024-7-8 13:49:12 显示全部楼层
yhdata_lyaa 发表于 2024-7-8 13:42
当前是什么版本呢

947b
回复

使用道具 7#

你认识米米不铂金一
发表于 2024-7-8 14:16:09 显示全部楼层
yhdata_lyaa 发表于 2024-7-8 13:44
param['年']=param['年1']

不好用呢,没反应
回复

使用道具 8#

找Job的老6铂金二
发表于 2024-7-8 14:22:52 显示全部楼层
本帖最后由 yhbi老6了 于 2024-7-8 14:42 编辑

我算看懂了,你数据集中有年月这种日期参数,并且是想通过参数组件传递到数据集中的。导致你出现了同名参数。这个套娃,呃......
我的建议是,可以就最好sql数据集不要做参数。直接用宽表模型这样就只是单纯的select from就好,所有的参数通过图表组件的过滤器直接传递给宽表(直连的情况下,图表的过滤器最终都会传递给sql数据集的where的,如果你对永洪bi原理了解的话应该可以理解这个)。将数据集纯净化,不要有过多的处理。
其实这个bi和传统的前后端开发有很大的区别,传统的前后端开发时参数必须传递到sql上。但是目前数仓这块,可以最好就直接用宽表模型不做更多关联以及处理。

回复

使用道具 9#

你认识米米不铂金一
发表于 2024-7-8 14:30:18 显示全部楼层
yhbi老6了 发表于 2024-7-8 14:22
我算看懂了,你数据集中有年参数,并且是想通过参数组件传递到数据集中的。导致你出现了同名参数。这个套娃 ...

有解决思路么老师
回复

使用道具 10#

1234  
高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
100W

用户等你来哦

Copyright   ©2012-2025  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部