找文章 / 找答案
永洪vip
  • 发帖数1464
  • 粉丝2

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

精选问答 更多内容

[数据处理] 数据集传参时提示报告中有同名参数,应该怎么修改呐?

我是卡拉米白银二 显示全部楼层 发表于 2024-7-8 11:26:04 |阅读模式 打印 上一主题 下一主题
数据集传参时提示报告中有同名参数,应该怎么修改呐?

最佳答案

数据分析之星
yhbi老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(,' ...
查看完整内容
回复

使用道具 举报

精彩评论32

yhbi老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依旧是没有语法错误的


回复

使用道具 举报

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

使用道具 举报

我是卡拉米白银二 显示全部楼层 发表于 2024-7-8 13:17:31
yhdata_lyaa 发表于 2024-7-8 11:46
检查下有没有同名参数呢,换一个名字

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

使用道具 举报

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

当前是什么版本呢
回复

使用道具 举报

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

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

使用道具 举报

我是卡拉米白银二 显示全部楼层 发表于 2024-7-8 13:49:12
yhdata_lyaa 发表于 2024-7-8 13:42
当前是什么版本呢

947b
回复

使用道具 举报

我是卡拉米白银二 显示全部楼层 发表于 2024-7-8 14:16:09
yhdata_lyaa 发表于 2024-7-8 13:44
param['年']=param['年1']

不好用呢,没反应
回复

使用道具 举报

yhbi老6了白银四 显示全部楼层 发表于 2024-7-8 14:22:52
本帖最后由 yhbi老6了 于 2024-7-8 14:42 编辑

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

回复

使用道具 举报

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

有解决思路么老师
回复

使用道具 举报

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

  • 官方微信

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

    扫码关注
  • 新浪微博

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

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

会员等你来哦

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