找文章 / 找答案
  • 发帖数4
  • 粉丝0

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

    精选问答 更多内容

    [数据处理] 关于sql数据集的参数判断问题

    yhdata_a9GtPW2f玄铁一 显示全部楼层 发表于 昨天 11:18 |阅读模式 打印 上一主题 下一主题
    1
    未解决
    由于我的查询比较复杂,无法使用原生bi通过表实现,所以我使用的是sql数据集来实现报表,可是在 使用sql数据集实现的过程中遇到一个问题,就是由于过于复杂,我需要根据页面中的参数去实现不同的查询字段,比如页面中有1个类型的参数,当类型选择1,那么就差a表中的第一列,如果类型选择2,那么就查询a表中的第二列,但是由于永洪数据集的参数只能判断是否有这个参数,所以我无法实现这个需求,请官方能人帮忙解答一下这个问题,看有什么好的办法可以解决我的需求呀。。求赐教!
    回复

    使用道具 举报

    精彩评论13

    阿姆斯特朗炮铂金三 显示全部楼层 发表于 昨天 11:25
    写脚本,有几个类型写介个类型的参数,然后在where条件里写每一列=对应的参数<参数1> and 列1 = ?{参数1} </参数1>
    回复

    使用道具 举报

    yhdata_lyaa 显示全部楼层 发表于 昨天 11:31
    回复

    使用道具 举报

    yhdata_a9GtPW2f玄铁一 显示全部楼层 发表于 昨天 11:32
    阿姆斯特朗炮 发表于 2024-12-27 11:25
    写脚本,有几个类型写介个类型的参数,然后在where条件里写每一列=对应的参数 and 列1 = ?{参数1}  ...

    意思是参数只有1个,需要根据参数来判断,查询的列,参数等于1,查询表中第一列,参数等于2,查询表中第二列
    回复

    使用道具 举报

    阿姆斯特朗炮铂金三 显示全部楼层 发表于 昨天 13:07
    yhdata_a9GtPW2f 发表于 2024-12-27 11:32
    意思是参数只有1个,需要根据参数来判断,查询的列,参数等于1,查询表中第一列,参数等于2,查询表中第 ...

    对,在脚本中写,如果参数=1,给参数1赋值,其他的参数的值清空,如果参数=2,给参数2赋值,其他的参数清空,这样where条件里写我刚才写的那个,如果参数1有值,只会查询列1=参数1的值,如果参数2有值,只会查询列2=参数2的值
    回复

    使用道具 举报

    yhdata_a9GtPW2f玄铁一 显示全部楼层 发表于 昨天 14:15
    阿姆斯特朗炮 发表于 2024-12-27 13:07
    对,在脚本中写,如果参数=1,给参数1赋值,其他的参数的值清空,如果参数=2,给参数2赋值,其他的参数清 ...

    这种行是行,可是页面太不美观了吧,要好几个查询条件,操作很麻烦。。
    回复

    使用道具 举报

    yhdata_a9GtPW2f玄铁一 显示全部楼层 发表于 昨天 14:15
    yhdata_lyaa 发表于 2024-12-27 11:31
    参考看看https://www.yonghongtech.com/help/Z-Suite/11.0/ch/index.html?paramindataset.html
    参数参与SQL ...

    好的,谢谢,我去学习一下
    回复

    使用道具 举报

    yhdata_lyaa 显示全部楼层 发表于 昨天 14:46
    回复

    使用道具 举报

    阿姆斯特朗炮铂金三 显示全部楼层 发表于 昨天 14:59
    yhdata_a9GtPW2f 发表于 2024-12-27 14:15
    这种行是行,可是页面太不美观了吧,要好几个查询条件,操作很麻烦。。 ...

    有啥更好的方法,研究出来发一下,学习下
    回复

    使用道具 举报

    yanyuyuxiao玄铁三 显示全部楼层 发表于 昨天 15:51
    我有个想法,但是看起来也不太复合你说的美观的要求,然后就是你说的参数的选择类型多了性能可能不太好
    设置一个参数A来传递报表端选择的类型,比如1,2,3,4.....,然后sql数据集:
    select
    列1
    from table
    where 1=1
    <参数A> and ?{参数A} = 1  </参数A>
    union all
    select
    列2
    from table
    where 1=1
    <参数A> and ?{参数A} = 2  </参数A>

    用这种方式限制数据集取数的列,传递过来的参数A=1就只能取到第一列
    回复

    使用道具 举报

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

    • 官方微信

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

      扫码关注
    • 新浪微博

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

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

    会员等你来哦

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